Foros del Web » Programando para Internet » PHP »

Cuestionario me trae loco!!

Estas en el tema de Cuestionario me trae loco!! en el foro de PHP en Foros del Web. Hola, Bueno sigo sin sacar esto. Resulta que ya no me sale ningún error de ningún tipo. pero el problema es que no me guarda ...
  #1 (permalink)  
Antiguo 20/09/2004, 15:02
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Cuestionario me trae loco!!

Hola,

Bueno sigo sin sacar esto. Resulta que ya no me sale ningún error de ningún tipo. pero el problema es que no me guarda los datos en la base de datos a aprtir de la pagina2.php . Es decir tu vas rellenando, en la primera página hay 18 preguntas, tu sigues haciendo el cuestionario y no te va saliendo ningún error así, la 2,3,4,5,6,7 septima pagina, y ningún error. Mi sorpresa es luego al entrar en phpmyadmin que solo se me han guardado los datos de la pagina1.php

Aquí tenéis los codigos
Código PHP:
//pagina2.php

<?php
$p7
=implode("-",$checkbox1);
$p8=implode("-",$checkbox2);
$p10=implode("-",$checkbox3);
$p15=implode("-",$checkbox4);
$p17=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 ('$p1','$p2','$p3','$p4','$p5','$p6','$p7','$p8','$p9','$p10','$p11','$p12','$p13','$p14','$p15','$p16','$p17','$p18')");
$id_registromysql_query("SELECT id FROM v_cuestionario by id DESC limit 0,1");
session_start();
$_SESSION['id_actual']=$id_registro;
?>

//pagina3.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","vertice_cuestion","cuestionario");
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']."'"); ?>
Que puede pasar? porque no se me guardan los datos a partir de pagina3.php??????????????????

SAludos
  #2 (permalink)  
Antiguo 21/09/2004, 15:26
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Nadie lo sabe por favor lo necesito..
  #3 (permalink)  
Antiguo 21/09/2004, 21:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Esto NO es correcto:
$id_registro= mysql_query("SELECT id FROM v_cuestionario by id DESC limit 0,1");

en tal caso:
Código PHP:
$resultadomysql_query("SELECT id FROM v_cuestionario by id DESC limit 0,1"); 
$id_registro=mysql_result($resultado,0); 
Fijate que si bien haces una consulta SQL que obtiene un sólo registro con un sólo campo .. eso que te entrega es un "record-set" .. no una "variable" con ese valor .. así que debes aplicar cualquier función tipo ???_fetch_???() o bien como sabes que sólo tienes un resultado ... usa: mysql_result() accediendo al primer y único resultado.

Pero ... "intentando" ver que quieres hacer .. ese tal $id_registro NO deberías obtenerlo como lo haces sino usando:

mysql_insert_id()
http://www.php.net/mysql_insert_id

(o mejor todavía con su equivalente en SQL directo y hasta usando transacciones!)

Un saludo,
  #4 (permalink)  
Antiguo 22/09/2004, 08:39
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola,

Perdona cluster pero no te he entendido bien. Lo que quiero hacer, es k guarde la id del registro insertado al rellenar un cuestionario para luego en la siguiente página ir actualizando los datos de las siguientes preguntas...

te refieres a esto?

Código PHP:
$id_registro=mysql_insert_id();
session_start();
$_SESSION['id_actual']=$id_registro
así quedaría bien cluster?

Otra cuestión que tengo, es que cuando alguien se deja un campo en blanco(en cierto caso es necesario) me da error el implode(), puedo de alguna manera establecer un valor default al campo del formulario pero sin que me de error implode();?

Gracias por aguantarme y por favor ayudadme!

Salu2
  #5 (permalink)  
Antiguo 22/09/2004, 09:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si tu campo "ID" es autonumérico y único (supongo que lo será así), puedes usar inmediatamente despues de tu INSERT la función mysql_insert_id() para obtener ese ID generado y de ahí si lo requieres .. lo llevas a tu variable de sesión.

Los problemas con el implode() se ocasionan por qué el valor esperado es un array, cuando no tienen valores .. ya no es un array así que puedes verificar eso antes de hacer nada tipo:

Código PHP:
if (is_array($checkbox6)){
   
$p23=implode("-",$checkbox6); 
} else {
   
$p23="valor por defecto";

Un saludo,
  #6 (permalink)  
Antiguo 22/09/2004, 11:23
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Bueno, ya hice eso, pero me da un error en pagina2.php (espero que sea el ultimo) es k no le veo donde está el error, me podéis ayudar y ya os dejo en paz, gracias cluster de todo corazón, ahí va el código:

el error es:


Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /home/vertice/public_html/cuestionario/pagina2.php on line 21

y el código es:

Código PHP:

<?php
if (is_array($checkbox1)){
$p7=implode("-",$checkbox1);
}
else{
$p7="-";
}
if (
is_array($checkbox2)){
$p8=implode("-",$checkbox2);
}
else{
$p8="-";
}
if (
is_array($checkbox3)){
$p10=implode("-",$checkbox3);
}
else{
$p10="-";
}
if (
is_array($checkbox4)){
$
15=implode("-",$checkbox4);
}
else{
$p15="-";
}
if (
is_array($checkbox5)){
$p17=implode("-",$checkbox5);
}
else{
$p17="-";
}
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 ('$p1','$p2','$p3','$p4','$p5','$p6','$p7','$p8','$p9','$p10','$p11','$p12','$p13','$p14','$p15','$p16','$p17','$p18')");
$id_registro=mysql_insert_id(); 
session_start(); 
$_SESSION['id_actual']=$id_registro;
?>
a qué se debe el error? yo es que no lo veo por ninguna parte, las demás páginas parecen ir bien, que puede ser? gracias

Saludos
  #7 (permalink)  
Antiguo 22/09/2004, 12:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Fijate como se colorea esta sintax:

Código PHP:
if (is_array($checkbox4)){ 
$
15=implode("-",$checkbox4); 

else{ 
$p15="-"

ahí tienes el fallo (o por lo menos uno más xD).

Un saludo,
  #8 (permalink)  
Antiguo 22/09/2004, 13:19
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Bueno ya funciona todo!! gracias cluster (por responderme y por aguantarme xD)

Venga, Gracias y un Saludo
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 14:31.