Taller > PHP > Base de Datos MySQL
Mostrar Datos de MySQL con PHP
Uno de los usos más comunes de PHP con bases de datos MySQL es la obtención de datos mediante la sentencia SELECT. PHP proporciona varias formas de interactuar con una base de datos MySQL, utilizando MySQLi o PDO.
La Sentencia SQL SELECT
La sentencia SELECT se usa para seleccionar datos de una o más tablas en una base de datos. Puedes especificar las columnas que deseas obtener o usar el comodín * para seleccionar todas las columnas.
SELECT columna1, columna2 FROM tabla;
Ejemplo de SELECT *
SELECT * FROM empleados;
Esta consulta selecciona todas las columnas de la tabla empleados.
Seleccionar Datos con MySQLi Orientado a Objetos
Veamos cómo seleccionar datos de una tabla MySQL utilizando la extensión MySQLi en su enfoque orientado a objetos.
Ejemplo con MySQLi Orientado a Objetos
<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";
// Crear conexión
$conexion = new mysqli($servidor, $usuario, $contraseña, $base_datos);
// Verificar conexión
if ($conexion->connect_error) {
die("Conexión fallida: " . $conexion->connect_error);
}
// Consulta SQL
$sql = "SELECT id, nombre, apellido FROM empleados";
$resultado = $conexion->query($sql);
// Verificar y mostrar resultados
if ($resultado->num_rows > 0) {
while($fila = $resultado->fetch_assoc()) {
echo "ID: " . $fila["id"] . " - Nombre: " . $fila["nombre"] . " " . $fila["apellido"] . "<br>";
}
} else {
echo "0 resultados";
}
// Cerrar la conexión
$conexion->close();
?>
Explicación del Código
query(): Ejecuta la consulta SQL.
num_rows(): Verifica si hay filas en el resultado.
fetch_assoc(): Obtiene cada fila como un arreglo asociativo, que luego se recorre con un bucle while.
Seleccionar Datos con MySQLi Procedural
Si prefieres usar el enfoque procedural, también puedes utilizar MySQLi de manera similar. A continuación, un ejemplo.
Ejemplo con MySQLi Procedural
<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";
// Crear conexión
$conexion = mysqli_connect($servidor, $usuario, $contraseña, $base_datos);
// Verificar conexión
if (!$conexion) {
die("Conexión fallida: " . mysqli_connect_error());
}
// Consulta SQL
$sql = "SELECT id, nombre, apellido FROM empleados";
$resultado = mysqli_query($conexion, $sql);
// Verificar y mostrar resultados
if (mysqli_num_rows($resultado) > 0) {
while($fila = mysqli_fetch_assoc($resultado)) {
echo "ID: " . $fila["id"] . " - Nombre: " . $fila["nombre"] . " " . $fila["apellido"] . "<br>";
}
} else {
echo "0 resultados";
}
// Cerrar la conexión
mysqli_close($conexion);
?>
Explicación del Código
mysqli_connect(): Crea una conexión a la base de datos.
mysqli_query(): Ejecuta la consulta SQL.
mysqli_fetch_assoc(): Devuelve los resultados como un arreglo asociativo.
Mostrar Resultados en una Tabla HTML
Una forma común de mostrar datos de una base de datos es utilizando una tabla HTML. Aquí te mostramos cómo hacerlo usando MySQLi orientado a objetos.
Ejemplo de Resultados en una Tabla HTML
<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";
// Crear conexión
$conexion = new mysqli($servidor, $usuario, $contraseña, $base_datos);
// Verificar conexión
if ($conexion->connect_error) {
die("Conexión fallida: " . $conexion->connect_error);
}
// Consulta SQL
$sql = "SELECT id, nombre, apellido FROM empleados";
$resultado = $conexion->query($sql);
// Mostrar los resultados en una tabla HTML
if ($resultado->num_rows > 0) {
echo "<table border='1'><tr><th>ID</th><th>Nombre Completo</th></tr>";
while($fila = $resultado->fetch_assoc()) {
echo "<tr><td>" . $fila["id"] . "</td><td>" . $fila["nombre"] . " " . $fila["apellido"] . "</td></tr>";
}
echo "</table>";
} else {
echo "0 resultados";
}
// Cerrar la conexión
$conexion->close();
?>
Explicación del Código
Los resultados de la consulta SQL se muestran en una tabla HTML usando la estructura <table>, <tr>, <td>.
Seleccionar Datos con PDO
PDO ofrece una forma más segura y flexible de interactuar con bases de datos, incluyendo la funcionalidad de declaraciones preparadas. A continuación, te mostramos cómo seleccionar datos de una tabla MySQL usando PDO.
Ejemplo con PDO
<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";
try {
$conexion = new PDO("mysql:host=$servidor;dbname=$base_datos", $usuario, $contraseña);
$conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Preparar y ejecutar la consulta
$stmt = $conexion->prepare("SELECT id, nombre, apellido FROM empleados");
$stmt->execute();
// Mostrar resultados en una tabla HTML
echo "<table border='1'><tr><th>ID</th><th>Nombre Completo</th></tr>";
while ($fila = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<tr><td>" . $fila["id"] . "</td><td>" . $fila["nombre"] . " " . $fila["apellido"] . "</td></tr>";
}
echo "</table>";
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
// Cerrar la conexión
$conexion = null;
?>
Explicación del Código
prepare(): Prepara la consulta SQL de manera segura.
execute(): Ejecuta la consulta preparada.
fetch(): Recupera los resultados como un arreglo asociativo.
Conclusión
PHP ofrece varias formas de seleccionar datos de una base de datos MySQL, ya sea utilizando MySQLi o PDO. En este artículo, hemos explorado cómo usar ambos enfoques para obtener datos y mostrarlos en una tabla HTML.
Estos métodos son fundamentales para crear aplicaciones dinámicas basadas en bases de datos, y es importante elegir el que mejor se ajuste a las necesidades de tu proyecto.