Alter table mysql
En este apartado veremos como modificar nuestra tabla en mysql usando el comando ALTER TABLE
<?php
$server="localhost";
$user="root";
$password="";
$mysql = mysqli_connect($server, $user, $password)
or die("error");
mysqli_select_db($mysql, 'practica');
$result = mysqli_query($mysql, "ALTER TABLE
clientes ADD correo VARCHAR(80)
CHARACTER SET utf8 COLLATE utf8_bin
NOT NULL AFTER sexo,
ADD edad INT(3) NOT NULL AFTER correo,
ADD fecha TIMESTAMP(6) NOT NULL AFTER edad");
if($result){
echo "correcto";
}
else{
echo "ocurrió un error";
}
?>
Si ejecutamos este código en nuestro navegador y verificamos en nuestra tabla clientes, hemos añadido tres columnas más (correo, edad y fecha).
Tengamos en cuenta que el campo fecha se actualizará automáticamente cuando se realice la carga de un registro.
Ahora ya tenemos nuestra tabla actualizada y lista para seguir con los demás ejemplos
Update Mysql
La consulta Update es la más larga de todas es mejor verlo con un ejemplo
Para este ejemplo necesitaremos una página para cargar los datos que tenemos en nuestra tabla en ella añadiremos un botón que diga actualizar a cada uno de nuestros registros y ese botón debe enviarnos a un formulario donde le cargaremos los demás datos que hacen falta, y necesitaremos otra página que es la que realizará la tarea de actualizar nuestra tabla.
Página 1 la llamaremos pagina1.php
<!DOCTYPE html>
<html lang="en">
<head>
<title>Página 1</title>
</head>
<body>
<?php
$server="localhost";
$user="root";
$password="";
$mysql = mysqli_connect($server, $user, $password)
or die("error");
mysqli_select_db($mysql, 'practica');
$result = mysqli_query($mysql, "SELECT
id_usuario,nombre,apellido,sexo
FROM clientes");
?>
<table border="1">
<tr>
<th>Nombre</th>
<th>Apellido</th>
<th>Sexo</th>
<th>Correo</th>
<th>Edad</th>
<th>Fecha</th>
<th>Acción</th>
</tr>
<?php
foreach ($result as $row) {
$nombre=$row['nombre'];
$apellido=$row['apellido'];
$sexo=$row['sexo'];
$user=$row["id_usuario"];
?>
<tr>
<td><?php echo$nombre;?></td>
<td><?php echo $apellido;?></td>
<td><?php echo $sexo;?></td>
<td></td>
<td></td>
<td></td>
<td>
<form action='buscar.php?id=<?php echo $user;?>'
method="GET">
<input type="submit" value="ACTUALIZAR">
</form></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
Utilizaremos la misma página en la que mostrábamos los datos que tiene nuestra tabla clientes
Lo que cambia es la siguiente linea de código.
Agregamos un formulario que enviará el id del usuario a otra página llamada buscar.php y le pasamos el id de usuario como parámetro por medio de la función GET. (una aclaración, has notado que en nuestros formularios no hemos agregado nada en el campo id_usuario de nuestra tabla, eso es por que hemos declarado ese campo como autoincrementado, no es necesario que le asignemos un valor ya que al efectuarse un registro este incrementará su valor +1, y es un campo con valor único [clave primaria] lo cual nos permitirá de forma más fácil realizar la tarea de UPDATE ).
<td>
<form action='buscar.php?id=<?php echo $user;?>'
method="GET">
<input type="submit" value="ACTUALIZAR">
</form>
</td>
Veamos ahora nuestra página buscar.php
<?php
$idusuario=$_GET["id"];
$server="localhost";
$user="root";
$password="";
$mysql = mysqli_connect($server, $user, $password)
or die("error");
mysqli_select_db($mysql, 'practica');
$result = mysqli_query($mysql, "SELECT
nombre,apellido,sexo,correo, edad
FROM clientes where id_usuario='$idusuario'");
foreach ($result as $row) {
?>
<form action="update.php" method="POST">
Nombre:
<br>
<input type="text" name="nombre"
value="<?php echo $row["nombre"];?>">
<br>
Apellido:
<br>
<input type="text" name="apellido"
value="<?php echo $row["apellido"];?>">
<br>
Sexo:
<br>
<input type="text" name="sexo"
value="<?php echo $row["sexo"];?>">
<br>
Correo:
<br>
<input type="text" name="correo"
value="<?php echo $row["correo"];?>">
<br>
Edad:
<br>
<input type="text" name="edad"
value="<?php echo $row["edad"];?>">
<br>
<input type="hidden" name="id"
value="<?php echo $idusuario;?>">
<input type="submit" value="Actualizar">
</form>
<?php
}
?>
Está página no es más que un formulario como los que hemos visto.
con la línea de código siguiente buscamos en nuestra tabla el usuario con el id_usuario seleccionado y que pasamos por medio del botón actualizar
mysqli_query($mysql, "SELECT
nombre,apellido,sexo,correo, edad
FROM clientes
where id_usuario='$idusuario'");
además le estamos pasando a cada input el valor del usuario que hemos seleccionado para actualizar sus datos por medio de la propiedad value de cada input
.
<input type="text" name="nombre"
value="<?php echo $row["nombre"];?>">
Al pulsar el botón de Actualizar de esta página (buscar.php), nuestros datos se enviarán a la otra página que llamaremos update.php
Veamos el código de la pagina update.php
<?php
$id=$_POST["id"];
$nombre=$_POST["nombre"];
$apellido=$_POST["apellido"];
$sexo=$_POST["sexo"];
$correo=$_POST["correo"];
$edad=$_POST["edad"];
$server="localhost";
$user="root";
$password="";
$mysql = mysqli_connect($server, $user, $password)
or die("error");
mysqli_select_db($mysql, 'practica');
$result = mysqli_query($mysql, "
UPDATE clientes set nombre='$nombre',
apellido ='$apellido', sexo='$sexo',
correo='$correo', edad='$edad'
WHERE id_usuario=$id");
if($result){
echo "Los datos se han actualizado correctamente";
}
else{
echo "Ocurrió un error al actualizar datos";
}
?>
Capturamos todos los campos del formulario enviado por la página anterior
$id=$_POST["id"];
$nombre=$_POST["nombre"];
$apellido=$_POST["apellido"];
$sexo=$_POST["sexo"];
$correo=$_POST["correo"];
$edad=$_POST["edad"];
Luego agregamos nuestra consulta a la tabla, Aquí utilizamos una clausura WHERE.(Le decimos actualizame todos los datos de la tabla clientes DONDE el campo id_usuario sea igual al id de usuario que hemos pasado por medio de formulario).
$result = mysqli_query($mysql, "UPDATE clientes
set nombre='$nombre', apellido ='$apellido',
sexo='$sexo', correo='$correo', edad='$edad'
WHERE id_usuario=$id");
Si nuestra consulta esta correcta nos mostrará un mensaje de que está correcto y de lo contrario nos mostrará un mensaje de error
if($result){
echo "Los datos se han actualizado correctamente";
}
else{
echo "Ocurrió un error al actualizar datos";
}
Hasta aquí el código de ejemplo no debe mostrar ningún mensaje de error.
Si esta información te sirvió de ayuda no olvides dejar tus comentarios
Comentarios
Publicar un comentario