Visualizar Datos MySQL con PHP
Uno de los desafíos más comunes en el desarrollo web back-end es como presentar los datos almacenados en una base de datos MySQL a través de una interfaz web. Hemos resuelto ese desafío utilizando PHP, una popular herramienta de scripting del lado del servidor.
<?php $servername = "localhost"; $username = "username"; $password = "password"; $database = "estudiantes"; $con = new mysqli($servername, $username, $password, $database); if ($con->connect_error) { die("Conexión fallida: " . $con->connect_error); } $resultado = $con->query("SELECT * FROM estudiante"); if ($resultado->num_rows > 0) { echo "<table>"; while($row = $resultado->fetch_assoc()) { echo "<tr><td>" . $row["nombre"]. "</td></tr>"; } echo "</table>"; } else { echo "0 resultados"; } $con->close(); ?>
Permitiendo la eliminación de registros con PHP y MySQL
Eliminación de registros. Este concepto puede parecer desalentador al principio, pero le aseguramos que es un proceso muy simple. En la sección anterior, hemos extraído y presentado nuestros datos en una tabla HTML. Ahora, vamos a añadir una funcionalidad adicional que permita a los usuarios eliminar registros individuales.
Primero, modificaremos la estructura de nuestra tabla para incluir un botón de eliminación en cada fila. Este botón enlazará con un script PHP que ejecuta un comando DELETE en la base de datos MySQL. Es importante recordar que siempre debemos validar y higienizar cualquier dato que provenga del usuario antes de usarlo en una consulta SQL para evitar ataques de inyección SQL.
<?php while($row = $resultado->fetch_assoc()) { echo "<tr><td>" . $row["nombre"]. "</td>"; echo "<td><a href='eliminar.php?id=". $row["id"]." '>Eliminar</a></td></tr>"; } ?>
El script ‘eliminar.php’ debería tomar el ‘id’ del registro que se quiere remover, validarlo y luego ejecutar una consulta DELETE en la base de datos. Es importante recordar evitar inyecciones SQL.
<?php $id = $_GET['id']; if(!preg_match("/^[0-9]*$/", $id)) { die("ID no válido");} $query = "DELETE FROM estudiante WHERE id=".$id; if($con->query($query)) { header("Location: index.php"); } else { echo "Error al eliminar"; } ?>