Foros del Web » Programando para Internet » PHP »

Problema con cuestionario urgente!!

Estas en el tema de Problema con cuestionario urgente!! en el foro de PHP en Foros del Web. Hola, a ver os explico del principio. Estoy haciendo un cuestionario que consta de 111 preguntas, y se tiene que guardar en una base de ...
  #1 (permalink)  
Antiguo 16/09/2004, 10:32
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Problema con cuestionario urgente!!

Hola,

a ver os explico del principio. Estoy haciendo un cuestionario que consta de 111 preguntas, y se tiene que guardar en una base de datos mysql, además hay unos campos checkboxs en el formulario que pueden tener varias respuestas y se tendrán que separar con un guión "-" en la base de datos. A ver este es el script que tengo:

Código PHP:
<?php
$siete
=implode("-",$checkbox1);
$ocho=implode("-",$checkbox2);
$diez=implode("-",$checkbox3);
$quince=implode("-",$checkbox4);
$diecisiete=implode("-",$checkbox5);

mysql_connect("localhost","vertice_cuestion","cuestionario");
mysql_select_db("vertice_cuestionario");
mysql_query("insert into v_cuestionario(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18) values ('$1','$2','$3','$4','$5','$6','$siete','$ocho','$9','$diez','$11','$12','$13','$14','$quince','$16','$diecisiete','$18')");
$id_registromysql_query("SELECT id FROM v_cuestionario by id DESC limit 0,1");
session_start();
$_SESSION['id_actual']=$id_registro;
?>
Los errores son los siguientes:

Warning: implode(): Bad arguments. in /home/vertice/public_html/cuestionario/pagina2.php on line 2

Warning: implode(): Bad arguments. in /home/vertice/public_html/cuestionario/pagina2.php on line 3

Warning: implode(): Bad arguments. in /home/vertice/public_html/cuestionario/pagina2.php on line 4

Warning: implode(): Bad arguments. in /home/vertice/public_html/cuestionario/pagina2.php on line 5
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/vertice/public_html/cuestionario/pagina2.php:2) in /home/vertice/public_html/cuestionario/pagina2.php on line 12

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/vertice/public_html/cuestionario/pagina2.php:2) in /home/vertice/public_ht

---------------------------------

Y otro error k veo es k los datos se guardan en la base de datos como el nombre de la variable, no como el valor que tenga, es decir, se me guarda como $1,$2,$3

Espero que podáis ayudarme, please es urgente

Gracias
  #2 (permalink)  
Antiguo 16/09/2004, 11:05
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 5 meses
Puntos: 1
todos los errores de implode que tienes, es altamente probable que sean generados debido a que el segundo argumento que pasas no es un arreglo, y la función implode espera un arreglo como segundo argumento. El error de sesión es simplemente por que ya se enviaron mensajes de error al navegador y por lo tanto no se puede inicializar sesión. En cuanto corrigas los primeros se corrige el segundo

un saludo
  #3 (permalink)  
Antiguo 16/09/2004, 17:23
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Si pero como corrijo los primeros? es que no tengo ni idea de como. y lo que te he comentado antes, en la bd en vez de guardarseme el valor de las variables se me guarda el nombre, es decir, $1,$2...

Please ayuda!!

Gracias!
  #4 (permalink)  
Antiguo 17/09/2004, 00:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No te lo puedo confirmar .. pero ¿numeros como nombres de variables? .. eso está permitido? ...

Bueno .. fuera de eso . .habría que ve como definees tus variables $checkbox? .. por qué el error que te dá es que NO es un array (tal vez no usastes como nombre de esos checkbox: nombre[] (con el []) ... o algún grupo de esos checkbox no seleccionastes ningún elemento (marcar) ..

Un saludo,
  #5 (permalink)  
Antiguo 17/09/2004, 03:37
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola, no se si he entendido bien pero te refieres a ponerle de nombre de campo de formulario de esta forma?:

checkbox[] ??

Saludos
  #6 (permalink)  
Antiguo 17/09/2004, 13:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, así con "[]" creas un array (de indice autonumérico comenzando en cero).

Pero insisto que lo ideal es que pongas tu código e indiques como agrupas esos checkbox.

Un saludo,
  #7 (permalink)  
Antiguo 19/09/2004, 04:55
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
wenas,

bueno he planteado el código de la otra manera que me dijisteis vosotros, es decir cambiando las variables numeros añadiendole una "p" delante, también les puse los "[]" y el problema con los implode(); parece desaparecer. Pero ahora tengo otro problema(vaya por dios).

Bueno, tengo un cuestionario dividido en 7 páginas. En la página 2 que es cuando se requiere hacer el primer query, lo tengo con un insert into, (como habéis visto arriba), bueno bien!! funciona, pero al darle a continuar, aparece este error en la página3.php,pagina4.php,pagina5.php,pagina6.php,pa gina7.php el error es el siguiente en todas las páginas:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/vertice/public_html/cuestionario/pagina3.php on line 15

lo que hago, es un UPDATE donde en where pongo la variable sesión que guarde en la pagina2.php. Todos los errores que salen están en la línea del mysql_query(); yo me he hartado viendo repasando el código pero no he encontrado el error, aquí os pego el código para que lo veáis

Código PHP:
<?php
$p23
=implode("-",$checkbox6);
$p25=implode("-",$checkbox7);
$p26=implode("-",$checkbox8);
$p27=implode("-",$checkbox9);
$p28=implode("-",$checkbox10);
$p34=implode("-",$checkbox11);
$p35=implode("-",$checkbox12);
$p36=implode("-",$checkbox13);
$p37=implode("-",$checkbox14);
$p38=implode("-",$checkbox15);
session_start();
mysql_connect("localhost","user","pass");
mysql_select_db("vertice_cuestionario");
mysql_query("UPDATE v_cuestionario set p19='$p19',p20='$p20',p21='$p21',p22='$p22',p23='$p23',p24='$p24',p25='$p25',p26='$p26',p27='$p27',p28='$p28',p29='$p29',p30='$p30',p31='$p31',p32='$p32',p33='$p33',p34='$p34',p35='$p35',p36='$p36',p37='$p37',p38='$p38',p39='$p39',p40='$p40',p41='$p41',p42='$p42',p43='$p43',p44='$p44',p45='$p45',p46='$p46',p47='$p47',p48='$p48',p49='$p49',p50='$p50',p51='$p51',p52='$p52' where id='$_SESSION['id_actual']'");
?>
Por favor, ayudadme, gracias.

Saludos
  #8 (permalink)  
Antiguo 19/09/2004, 15:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sigues sin poner el código HTML que genera esas variables $checkbox6);

De todas formas .. tenías un problema con el uso de comillas:

Código PHP:
mysql_query("UPDATE v_cuestionario set p19='$p19',p20='$p20',p21='$p21',p22='$p22',p23='$  p23',p24='$p24',p25='$p25',p26='$p26',p27='$p27',p  28='$p28',p29='$p29',p30='$p30',p31='$p31',p32='$p  32',p33='$p33',p34='$p34',p35='$p35',p36='$p36',p3  7='$p37',p38='$p38',p39='$p39',p40='$p40',p41='$p4  1',p42='$p42',p43='$p43',p44='$p44',p45='$p45',p46  ='$p46',p47='$p47',p48='$p48',p49='$p49',p50='$p50  ',p51='$p51',p52='$p52' where id='".$_SESSION['id_actual']."'"); 
?> 
Concatenando (usando los . y cerrando comilla donde corresponda y abriendolas donde sea neceario ..) se vé mejor donde están tus variables PHP.

Un saludo,
  #9 (permalink)  
Antiguo 20/09/2004, 13:59
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
gracias cluster, ya lo he solucionado ;)

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:34.