Foros del Web » Programando para Internet » PHP »

No me graba datos del formulario a la base de datos

Estas en el tema de No me graba datos del formulario a la base de datos en el foro de PHP en Foros del Web. estoy tratando de ejecutar el siguiente codigo php... Código: // formulario pregunta y respuestas echo "<form method='post' action=''>" ; while ($rowPreg = mysql_fetch_assoc($rs)) { echo ...
  #1 (permalink)  
Antiguo 30/04/2012, 13:41
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
No me graba datos del formulario a la base de datos

estoy tratando de ejecutar el siguiente codigo php...

Código:
// formulario pregunta y respuestas

echo "<form method='post' action=''>" ;
	while ($rowPreg = mysql_fetch_assoc($rs)) {
		
		
		echo "<strong>Cod Preg:".$rowPreg['cod_idpregunta']." Cod Delito:" . $cod_delito . "</strong><br><br>";
		echo "<strong>Pregunta asociada</strong>: ".$rowPreg['gls_pregunta']."<br>";
		echo "<p align='left'><input type='radio' name='respuesta'  value='1'><label for='SI'>SI</label></p>";
		echo "<p align='left'><input type='radio' name='respuesta'  value='2'><label for='NO'>NO</label></p>";
		echo "<p align='left'><input type='radio' name='respuesta'  value='3'><label for='NO A'>NO A</label></p>";
		echo "<p align='left'><input type='radio' name='respuesta'  value='4'><label for='NO O'>NO O</label></p>";

//cierro el while
} 
echo "<input type='submit' name='Submit' id='Submit' value='Submit'><hr>";
echo "</form>";

// Guardado temporal
@$pregunta=$rowPreg['cod_idpregunta'];
@$respuesta=$_POST['respuesta'];
if(@$_POST['submit'])
{
echo $s="insert into respuestas(pregunta,respuesta) values('$pregunta','$respuesta')";
echo 'Your Data Inserted';
mysql_query($s);
}
alguien?
  #2 (permalink)  
Antiguo 30/04/2012, 14:04
 
Fecha de Ingreso: abril-2012
Mensajes: 17
Antigüedad: 12 años
Puntos: 0
Respuesta: No me graba datos del formulario a la base de datos

form action esta vacio?
  #3 (permalink)  
Antiguo 30/04/2012, 14:06
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
Respuesta: No me graba datos del formulario a la base de datos

Cita:
Iniciado por franciscoramos10 Ver Mensaje
form action esta vacio?

se ejecuta mas abajo , despues de que termina el

Código PHP:
echo "</form>";

//si apreto submit guardo...

@$pregunta=$rowPreg['cod_idpregunta'];
@
$respuesta=$_POST['respuesta'];
if(@
$_POST['submit'])
{
echo 
$s="insert into respuestas(pregunta,respuesta) values('$pregunta','$respuesta')";
echo 
'Your Data Inserted';
mysql_query($s);

  #4 (permalink)  
Antiguo 30/04/2012, 14:09
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: No me graba datos del formulario a la base de datos

Cita:
Iniciado por franciscoramos10 Ver Mensaje
form action esta vacio?
Si está vacio se ejecuta en la misma página, no es obligatorio.

Lo que está haciendo mal es esto:

Código PHP:
@$pregunta=$rowPreg['cod_idpregunta']; 
Esto deberia ir dentro del while y meter el valor en un input text para luego pasarlo mediante post.
__________________
Tu álbum de cromos online!!
  #5 (permalink)  
Antiguo 30/04/2012, 14:18
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
Respuesta: No me graba datos del formulario a la base de datos

Cita:
Iniciado por santris Ver Mensaje
Si está vacio se ejecuta en la misma página, no es obligatorio.

Lo que está haciendo mal es esto:

Código PHP:
@$pregunta=$rowPreg['cod_idpregunta']; 
Esto deberia ir dentro del while y meter el valor en un input text para luego pasarlo mediante post.

No, esa linera no esta vacia (ya probe meterla dentro del while, y tampoco me salva los datos al sql)
Código PHP:
echo "<strong>Cod Preg:".$rowPreg['cod_idpregunta'].
Muestra esto



y necesito guardar ese codigo de pregunta, para saber a que pregunta corresponde la respuesta.

Gracias de todas formas.

Alguien?
  #6 (permalink)  
Antiguo 30/04/2012, 14:41
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: No me graba datos del formulario a la base de datos

Cita:
Iniciado por afuentealba Ver Mensaje
No, esa linera no esta vacia (ya probe meterla dentro del while, y tampoco me salva los datos al sql)
Código PHP:
echo "<strong>Cod Preg:".$rowPreg['cod_idpregunta'].
Muestra esto



y necesito guardar ese codigo de pregunta, para saber a que pregunta corresponde la respuesta.

Gracias de todas formas.

Alguien?
Yo no he dicho que está vacia, respondía al post de un compañero, lo que te digo esque debe ir dentro del while y poner el resultado dentro de un input text para poder pasarlo mediante post:

Cita:
Esto deberia ir dentro del while y meter el valor en un input text para luego pasarlo mediante post.
__________________
Tu álbum de cromos online!!
  #7 (permalink)  
Antiguo 30/04/2012, 14:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: No me graba datos del formulario a la base de datos

Usa un campo hidden para enviarlo junto con tu consulta:
Código HTML:
Ver original
  1. <input type="hidden" name="cod_pregunta" value="<?php echo $row['cod_pregunta']; ?>" />

Así al hacer el submit por POST, va a llegar también para poder actualizar / insertar.

Saludos.
  #8 (permalink)  
Antiguo 30/04/2012, 15:14
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
Respuesta: No me graba datos del formulario a la base de datos

Cita:
Iniciado por GatorV Ver Mensaje
Usa un campo hidden para enviarlo junto con tu consulta:
Código HTML:
Ver original
  1. <input type="hidden" name="cod_pregunta" value="<?php echo $row['cod_pregunta']; ?>" />

Así al hacer el submit por POST, va a llegar también para poder actualizar / insertar.

Saludos.
Hice los cambios sugeridos, y aun no logra grabar:

Código PHP:
//construyo la sentencia SQL 
$ssql="SELECT pregunta_valorada.si FROM pregunta_valorada where pregunta_valorada.cod_pregunta = $pregunta";
// formulario pregunta y respuestas
echo "<form method='post' action=''>" ;
    while (
$rowPreg mysql_fetch_assoc($rs)) {
        
        
echo 
"<strong>Cod Preg:".$rowPreg['cod_idpregunta']." Cod Delito:" $cod_delito "</strong><br><br>";
        
// Campo oculto donde meto el el nro de la pregunta para despues guardarla en la BD
echo "<input type='hidden' name='cod_pregunta' value=".$rowPreg['cod_idpregunta']." />";
        
echo 
"<strong>Pregunta asociada</strong>: ".$rowPreg['gls_pregunta']."<br>";
echo 
"<p align='left'><input type='radio' name='respuesta'  value='1'><label for='SI'>SI</label></p>";
echo 
"<p align='left'><input type='radio' name='respuesta'  value='2'><label for='NO'>NO</label></p>";
echo 
"<p align='left'><input type='radio' name='respuesta'  value='3'><label for='NO A'>NO A</label></p>";
echo 
"<p align='left'><input type='radio' name='respuesta'  value='4'><label for='NO O'>NO O</label></p>";


echo 
"<input type='submit' name='Submit' id='Submit' value='Submit'><hr>";
echo 
"</form>";

// Guardado al precionar SUBMIT
@$pregunta=$_POST[$rowPreg['cod_idpregunta']];
@
$respuesta=$_POST['respuesta'];
if(@
$_POST['submit'])
{
echo 
$s="insert into respuestas(pregunta,respuesta) values('$pregunta','$respuesta')";
echo 
'Your Data Inserted';
mysql_query($s);
}
//cierro el while

Por cierto, sobre y debajo de este codigo, esta otro que pagina cada pregunta, de manera que abajo de este formulario, aparece "1 - 2 - 3 - 4 ..." otras paginas de preguntas, sera eso lo que no me deja guardar este form?

  #9 (permalink)  
Antiguo 30/04/2012, 15:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: No me graba datos del formulario a la base de datos

Código PHP:
Ver original
  1. // mal:
  2. @$pregunta=$_POST[$rowPreg['cod_idpregunta']];
  3. @$respuesta=$_POST['respuesta'];
  4. // bien:
  5. $pregunta = $_POST['cod_pregunta'];
  6. $respuesta = $_POST['respuesta'];

No es bueno usar @ para suprimir errores, mejor comprueba que exista la variable y así puedes manejar errores:

Código PHP:
Ver original
  1. if ('post' == strtolower($_SERVER['REQUEST_METHOD'])) {
  2.         $pregunta = $_POST['cod_pregunta'];
  3.         $respuesta = $_POST['respuesta'];
  4.         $s="insert into respuestas(pregunta,respuesta) values('$pregunta','$respuesta')";
  5.         echo 'Your Data Inserted';
  6.         mysql_query($s) or die(mysql_error());
  7. }

Saludos.
  #10 (permalink)  
Antiguo 30/04/2012, 15:48
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
Respuesta: No me graba datos del formulario a la base de datos

Cita:
Iniciado por GatorV Ver Mensaje
Código PHP:
Ver original
  1. // mal:
  2. @$pregunta=$_POST[$rowPreg['cod_idpregunta']];
  3. @$respuesta=$_POST['respuesta'];
  4. // bien:
  5. $pregunta = $_POST['cod_pregunta'];
  6. $respuesta = $_POST['respuesta'];

No es bueno usar @ para suprimir errores, mejor comprueba que exista la variable y así puedes manejar errores:

Código PHP:
Ver original
  1. if ('post' == strtolower($_SERVER['REQUEST_METHOD'])) {
  2.         $pregunta = $_POST['cod_pregunta'];
  3.         $respuesta = $_POST['respuesta'];
  4.         $s="insert into respuestas(pregunta,respuesta) values('$pregunta','$respuesta')";
  5.         echo 'Your Data Inserted';
  6.         mysql_query($s) or die(mysql_error());
  7. }

Saludos.
Eres un genio viejo, gracias!

funcionando.

saludos!

Etiquetas: formulario, graba, mysql
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:07.