Foros del Web » Programando para Internet » PHP »

No actualiza base de datos

Estas en el tema de No actualiza base de datos en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema, estoy tratando de actualizar un registro de la base de datos, sin embargo aunque aparentemente funciona el código, uando voy ...
  #1 (permalink)  
Antiguo 12/01/2016, 12:01
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Pregunta No actualiza base de datos

Hola, tengo el siguiente problema, estoy tratando de actualizar un registro de la base de datos, sin embargo aunque aparentemente funciona el código, uando voy a la base no se ha modificado el registro.

Mis códigos resumidos:
editar.html
Código HTML:
<form action="modifica.php" method="post">
  <p align="center">  
  <p align="center"><span class="c">Ingrese c&eacute;dula escolar a Editar</span>:
<input tipe="text" name="cedula">
  
  <p align="center">
  <input type="submit" name="button" id="button" value="Editar">    
</form> 
modifica.php

Código PHP:
<?php
$conexion 
mysql_connect("localhost""root""") or die("Problemas en la conexion");
mysql_select_db("escuela"$conexion) or die("Problemas en la selección de la base de datos");
$registros mysql_query("select * from alumnos where CedulaE='$_POST[cedula]'"$conexion) or die("Problemas en el select:" .mysql_error());
if (
$reg mysql_fetch_array($registros)) {
?>
<h1 align="center">Modificar registro</h1>
<form action="modificarE.php" method="post">
  <div align="center">
    Apellidos : <input type="text" name="apellidos" value="<?php echo $reg['Apellidos']?>"><br>
    Nombres: <input type="text" name="nombres" value="<?php echo $reg['Nombres']?>">
   
  <br>
  <input type="submit" value="Modificar">
  }  

  </div>
</form>
<?php
}  else {
echo 
"Cedula Escolar No registrada ";}
?>
modificarE.php

Código PHP:
 <?php

$id 
$_POST['cedula']; 
$conexion mysql_connect("localhost""root""") or die("Problemas en la conexion");
mysql_select_db("escuela"$conexion) or die("Problemas en la selección de la base de datos");
$registros mysql_query("UPDATE alumnos SET Apellidos='$_POST[apellidos],Nombres='$_POST[nombres]' WHERE CedulaE='$id'"$conexion) or die("Problemas en el select :" mysql_error());
echo 
"datos modificados con éxito";
?>
El código accede a la base y me trae los registros pero no los actualiza. Agradezco su ayuda.
  #2 (permalink)  
Antiguo 12/01/2016, 12:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No actualiza base de datos

No hay errores en la sintaxis del UPDATE, por lo que si hay problemas son estrictamente de programación. Muy probablemente es un problema de DATOS que no están en las variables como supones.

Por favor, leer las reglas del foro de BBDD. No se tratan temas de programacion en BBDD o sus subforos, ni se postean códigos de programación en él.

Movido a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 12/01/2016, 12:40
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: No actualiza base de datos

Ok gracias amigo. Y disculpa por haberlo colocado en el foro que no era.
  #4 (permalink)  
Antiguo 12/01/2016, 13:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No actualiza base de datos

Mira, tu UPDATE tiene una única condición:
Código SQL:
Ver original
  1. UPDATE alumnos
  2. SET Apellidos='$_POST[apellidos],Nombres='$_POST[nombres]'
  3. WHERE CedulaE='$id'
Alli se nota que te faltó un apostrofo...
Código SQL:
Ver original
  1. UPDATE alumnos
  2. SET Apellidos='$_POST[apellidos]', Nombres='$_POST[nombres]'
  3. WHERE CedulaE='$id'
No lo detectas porque no estás capturando los errores que devuelva la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 12/01/2016, 13:22
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: No actualiza base de datos

Tienes razón, ya lo coloqué pero sigue sin actualizar.
  #6 (permalink)  
Antiguo 12/01/2016, 14:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No actualiza base de datos

Como ya te dije, si no actualiza es que la variable $id no contiene lo que supones que contiene...

Las reglas BASICAS para trabajar con SQL embebido en otro lenguaje de programación son:
1) No asumas que las variables contienen datos, o que los datos están bien.
2) No asumas que no has escrito algo mal. Verifica visualmente la sentencia armada en una variable
3) No envíes a ejecutar desde la funcion qu ellama a ejecutar. Usa una variable para crear la sentencia.
4) No asumas que la query enviada no falla nunca. Captura siempre la respuesta de la base.

Algo tan simple como esto:
Código PHP:
Ver original
  1. $id = $_POST['cedula'];
  2. $conexion = mysql_connect("localhost", "root", "") or die("Problemas en la conexion");
  3. mysql_select_db("escuela", $conexion) or die("Problemas en la selección de la base de datos");
  4. $qry = "UPDATE alumnos SET Apellidos='$_POST[apellidos]', Nombres='$_POST[nombres]' WHERE CedulaE='$id'";
  5.  
  6. echo $qry;
  7.  
  8. $registros = mysql_query($qry, $conexion) or die("Problemas en el select :" . mysql_error());
  9.  
  10. if(mysql_num_rows($registros)==0)
  11. {echo "No se actualziaron registros";}
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 12/01/2016, 16:51
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: No actualiza base de datos

Listo, lo solucioné colocando la siguiente línea en modifica.php

Código PHP:
Ver original
  1. cedula  : <input type="text" name="cedula" value="<?php echo $reg['CedulaE']?>"><br>

Gracias por tu ayuda y consejos gnzsoloyo :)

Etiquetas: mysql, registro, registros, select, sql
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 07:10.