Error al intentar actualizar datos

Error al actualizar datos de una tabla mysql

1. He creado un programa php para mostrar todos los registros con todos los campos de una tabla, y he agregado dos hipervínculos para Editar y Eliminar. Esta parte ya la está haciendo en forma exitosa.

2. Al hacer click en Editar, se abre el programa editar.php, recibiendo el valor de la matricular del alumno del renglón seleccionada, y después ejecuta una consulta para mostrar los datos sólo de ese alumno en un nuevo formulario. Esta parte también ya funciona sin problemas.

3. Ahora quiero que en el formulario que se muestra en editar, el usuario sea capaz de cambiar valores y cuando presione el botón Actualizar, que es un input type="submit", abra el programa Actualizar.php y ejecute el update para actualizar los datos de ese alumno. Esta es la parte que no me funciona. Al parecer, al hacer click se vuelve a llamar a sí mismo, es decir, vuelve a mostrar editar.php, y nunca abre actualizar.php.

Adjunto mi código, ojala puedas ayudarme. Espero no marearte con tanto código. Muchas gracias.

Gaby.

_____________________________________________________________________________________________

Editar.php:

¿

¿

<?php
    // Conectar a la base de datos
    $enlace = mysql_connect("localhost", "usuario3c","contra");
    if (!$enlace) {
            die("No se pudo conectar : " . Mysql_error());
      }
    else{
        echo "<br>Conexión exitosa al servidor";
    }
   // Hacer que bd3b2015 sea la base de datos actual
   $bd_seleccionada = mysql_select_db("bd3c2015", $enlace);
   if (!$bd_seleccionada) {
      die ("No se puede usar bd3c2015 : " . Mysql_error());
    }
   else {
       echo "<br>Conexión exitosa a la base de datos: bd3c2015";
   }
   // Consulta a la tabla alumnos
   $matric = $_GET['mat'];
   echo $matric;
   $sql = "SELECT *  FROM alumnos2 WHERE matricula = $matric";
   $resultado = mysql_query($sql,  $enlace);
   $renglon=mysql_fetch_array($resultado);
?>   
     <form name='edicion' action='actualizar.php' method='post'>
       <p>
         <label for='matricula'>Matr&iacute;cula:</label>
         <input  type='text' name='fmatricula' value="<?echo $renglon['matricula'];?>" />
         <label for='nombre'><br />
           Nombre:</label>
         <input  type='text' name='fnombre' value="<?echo $renglon['nombre'];?>" />
         <label for='apat'><br />
           Apellido Paterno:</label>
         <input  type='text' name='fpaterno' value="<?echo $renglon['paterno'];?>" />
         <label for='amat'><br />
           Apellido Materno:</label>
         <input  type='text' name='fmaterno' value="<?echo $renglon['materno'];?>" />     
         <label for='cuat'><br />
           Cuatrimestre:</label>
         <input  type='text' name='fcuat' value="<?echo $renglon['cuat'];?>" />
         <label for='grupo'><br />
           Grupo:</label>
         <input  type='text' name='fgrupo' value="<?echo $renglon['grupo'];?>" />
       </p>
       <p>
         <label for='prepa'>Bachillerato de procedencia:</label>
         <input  type='text' name='prepa' value="<?echo $renglon['prepa'];?>" />     
       </p>
       <p>
         <input name="actualizar" type="submit" value="Actualizar" />
       </p>
   </form>
</body>
_____________________________________________________________________________________________

Actualizar.php:

<?php
    // Conectar a la base

de datos
    $enlace = conectar();
    $vmatricula = $_POST['fmatricula'];
    $vnombre = $_POST["fnombre"];
    $vpaterno = $_POST["fpaterno"];
    $vmaterno = $_POST["fmaterno"];
    $vprepa = $_POST["fprepa"];
    $vcuat = $_POST["fcuat"];
    $vgrupo = $_POST["fgrupo"];
   // Actualización de los datos
   $sql = "UPDATE alumnos SET nombre = '$vnombre', paterno = '$vpaterno, materno = '$vmaterno, prepa ='$vprepa, cuat='$vcuat', grupo ='$vgrupo' WHERE matricula = '$vmatricula'";
   $resultado = mysql_query($sql,  $enlace);
   if ($resultado)
     echo "Registro Actualizado";
   else
    echo "Error al actualizar datos del registro" . Mysql_error();
  mysql_close();
?>   
</body>
</html>

Respuesta
1

Te recomiendo para estos casos y similares utilizar variables de session

inicias asÍ: <?php session_start();

debe ser la primera linea. Luego...

$matric = $_GET['mat'];
   echo $matric;

creas la variable de session matric

$_SESSION['matric'] = $matric;

Cuando llegues al Formulario, no incluyas la $matric en él. Elimina la línea:

<label for='matricula'>Matr&iacute;cula:</label>
         <input  type='text' name='fmatricula' value="<?echo $renglon['matricula'];?>" />

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

en el script:

Actualizar.php: inicias session... antes de conectarte a la BBDD

<?php

// inicio de session

session_start();
    // Conectar a la base

de datos
    $enlace = conectar();
    $vmatricula = $_POST['fmatricula'];     NO....

... $vmatricula = $_SESSION['matric'];

Creo que te funciona mejor.

En las tablas es bueno crear un id autoincrement que es unico y lo manejas como la referencia para hacer tus UPDATE

¿Me hice entender?

¿Te quedan dudas?... comentanos

SiREZ

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas