De las actividades con
tablas esta es la más larga. Vamos a resolverlo implementando tres páginas, la
primera un formulario de consulta del mail de un alumno, la segunda otro
formulario que nos permita cargar su mail modificado y la última registrará el
cambio en la tabla.
El formulario de consulta del mail del alumno es similar
a problemas anteriores:
<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 es la más interesante y con conceptos
nuevos:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","")
or
die("Problemas
en la conexion");
mysql_select_db("base1",$conexion) or
die("Problemas
en la selección de la base de datos");
$registros=mysql_query("select * from alumnos
where
mail='$_REQUEST[mail]'",$conexion) or
die("Problemas
en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
{
?>
<form
action="pagina3.php" method="post">
Ingrese nuevo mail:
<input type="text"
name="mailnuevo" value="<?php echo $reg['mail']
?>">
<br>
<input
type="hidden" name="mailviejo" value="<?php echo
$reg['mail'] ?>">
<input
type="submit" value="Modificar">
</form>
<?php
}
else
echo "No existe alumno con dicho
mail";
?>
</body>
</html>
Lo primero que podemos observar es que si el if se
verifica verdadero se ejecuta un bloque que contiene código HTML:
if ($reg=mysql_fetch_array($registros))
{
?>
<form
action="pagina3.php" method="post">
Ingrese nuevo mail:
<input type="text"
name="mailnuevo" value="<?php echo $reg['mail']
?>">
<br>
<input
type="hidden" name="mailviejo" value="<?php echo
$reg['mail'] ?>">
<input
type="submit" value="Modificar">
</form>
<?php
}
Es decir que podemos disponer bloques de PHP dispersos
dentro de la página.
Otro concepto importante es como enviar el mail del
primer formulario a la tercer página, esto se logra con los controles de tipo "hidden", este tipo de
control no se visualiza en el formulario pero se envía al presionar el botón submit.
Si queremos que el control text se cargue con el mail
ingresado en el formulario anterior debemos cargar la propiedad value con dicho
valor:
<input type="text"
name="mailnuevo" value="<?php echo $reg['mail']
?>">
Por último la pagina3.php es la que efectúa la
modificación de la tabla propiamente dicha. Con el mail ingresado en la
pagina1.php, el mail modificado en la pagina2.php se efectúa el update.
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","")
or
die("Problemas
en la conexion");
mysql_select_db("base1",$conexion) or
die("Problemas
en la selección de la base de datos");
$registros=mysql_query("update alumnos
set mail='$_REQUEST[mailnuevo]'
where
mail='$_REQUEST[mailviejo]'",$conexion) or
die("Problemas
en el select:".mysql_error());
echo "El mail fue modificado con
exito";
?>
</body>
</html>
0 comentarios:
Publicar un comentario