Temas > Programacion > Php > UPDATE Modificacion de un registro trabajando php
Julio

UPDATE - Modificación de un registro trabajando con dos tablas
Ahora complicaremos un poco la modificación de un registro 
consultando dos tablas. Supongamos que un alumno desea 
cambiarse de curso, es decir, se inscribió en uno y quiere borrarse
de ese e inscribirse en otro diferente. Debemos mostrar en un 
"select" el curso actual en el que está inscrito y los otros cursos 
disponibles en la tabla "cursos". Para resolver este problema 
tenemos que plantear tres páginas, una donde ingresemos el 
mail del alumno, la segunda donde se pueda cambiar el curso
y por última una que permita modificar la tabla "alumnos" con 
el nuevo curso seleccionado. 
La primera página de ingreso del mail es:
<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php" method="post">
Ingrese el mail del alumno:
<input type="text" name="mail"><br>
<input type="submit" value="buscar">
</form>
</body>
</html>
La segunda página y la más importante en cuanto a novedades es 
la siguiente:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","z80") or
  die("Problemas en la conexion");
mysql_select_db("phpfacil",$conexion) or
  die("Problemas en la selección de la base de datos");
$registros=mysql_query("select * from alumnos
                where mail=`$_POST[mail]`",$conexion) or
  die("Problemas en el select:".mysql_error());
if ($regalu=mysql_fetch_array($registros))
{
?>
<form action="pagina3.php" method="post">
<input type="hidden" name="mailviejo" value="<?php
  echo $regalu[`mail`] ?>">
<select name="codigocurso">
<?php
  $registros=mysql_query("select * from cursos",$conexion) or
    die("Problemas en el select:".mysql_error());
  while ($reg=mysql_fetch_array($registros))
  {
  if ($regalu[`codigocurso`]==$reg[`codigo`])
    echo "<option value="$reg[codigo]"
selected>$reg[nombrecur]</option>";
  else
    echo "<option value="$reg[codigo]">$reg[nombrecur]</option>";
  }
?>
</select>
<br>
<input type="submit" value="Modificar">
</form>
<?php
}
else
  echo "No existe alumno con dicho mail";
?>
</body>
</html>
La primera consulta de la tabla alumnos es para verificar si existe 
un alumno con el mail ingresado por teclado:
<?php
$registros=mysql_query("select * from alumnos
                where mail=`$_POST[mail]`",$conexion) or
  die("Problemas en el select:".mysql_error());
if ($regalu=mysql_fetch_array($registros))
{
En caso de existir un alumno con dicho mail, el if se verifica verdadero 
y pasamos a poblar el control select con los distintos cursos que 
contiene la tabla "cursos":
  $registros=mysql_query("select * from cursos",$conexion) or
    die("Problemas en el select:".mysql_error());
  while ($reg=mysql_fetch_array($registros))
  {
  if ($regalu[`codigocurso`]==$reg[`codigo`])
    echo "<option value="$reg[codigo]"
selected>$reg[nombrecur]</option>";
  else
    echo "<option value="$reg[codigo]">$reg[nombrecur]</option>";
  }
?>
</select>
Para que aparezca seleccionado el curso actual debemos inicializar 
la marca option con el texto selected. Es decir que el if dentro del
while se verifica verdadero una solo vez.
Por último la tercera página procede a registrar el cambio en la tabla 
"alumnos":
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","z80") or
  die("Problemas en la conexion");
mysql_select_db("phpfacil",$conexion) or
  die("Problemas en la selección de la base de datos");
$registros=mysql_query("update alumnos
                set codigocurso=$_POST[codigocurso]
                where mail=`$_POST[mailviejo]`",$conexion) or
  die("Problemas en el select:".mysql_error());
echo "El curso fue modificado con exito";
?>
</body>
</html> 













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal