· Andrés Ledo · PHP · Lectura en 3 min
Cómo crear una tabla en PHP
Descubre como puedes crear una tabla con PHP con datos que pueden venir de un array o cualquier otro origen de datos.
Si has llegado hasta aquí es porque estás interesado en crear una tabla con PHP, bueno, en realidad la tabla no se crea con PHP sino con HTML/CSS y en PHP solo debes de concatenar en una variable todo ese HTML e imprimirlo por pantalla.
Índice
Cómo hacer una tabla en HTML
Comencemos viendo como es la estructura de una tabla con HTML, para luego crearla con PHP, ya que si no entiendes como se genera una tabla con HTML te será imposible generarla en PHP. Generaremos la tabla de la imagen con HTML.
Para generar esta tabla utilizamos el siguiente código HTML:
<html>
<body>
<h1>Notas alumnos</h1>
<table border="1">
<tr>
<th>Nombre alumno</th>
<th>Apellidos</th>
<th>Nota</th>
</tr>
<tr>
<td>Leire</td>
<td>Bravo</td>
<td>5,5</td>
</tr>
<tr>
<td>Ainara</td>
<td>Feijoo</td>
<td>6,5</td>
</tr>
<tr>
<td>Nancy</td>
<td>Tomas</td>
<td>4,5</td>
</tr>
</table>
</body>
</html>
Para la estructura de la tabla utilizamos la etiquetas <table></table>
, todo el contenido de la tabla debe estar entre estas dos etiquetas.
Para generar las filas utilizamos <tr></tr>
y dentro de estas utilizamos <td></td>
o <th></th>
para generar las columnas. Si te estás preguntando la diferencia entre <td>
y <th>
, básicamente, es que con <th>
el texto que escribas estará en negrita, vamos que sería lo mismo que hacer <td><b>Texto</b></td>
Como crear tabla en PHP
Imaginemos que los datos de los alumnos ahora vienen de una base de datos y los recibimos como array, pues básicamente, para crear nuestra tabla debemos de concatenarlos en nuestro HTML con un bucle foreach.
Nuestro código quedaría así:
<?php
//Array que contiene nuestros datos, imaginate que es una base de datos o similar...
$data = [
[
'name' => 'Leire',
'surname' => 'Bravo',
'note' => 5.5,
],
[
'name' => 'Ainara',
'surname' => 'Feijoo',
'note' => 6.5,
],
[
'name' => 'Nancy',
'surname' => 'Tomas',
'note' => 4.5,
],
];
?>
<html>
<body>
<h1>Notas alumnos</h1>
<table border="1">
<tr>
<th>Nombre alumno</th>
<th>Apellidos</th>
<th>Nota</th>
</tr>
<?php
$concat = '';
foreach ($data as $student) {
//Concatenamos las tablas en una variable, también podriamos hacer el "echo" directamente
$concat .= '<tr>';
$concat .= '<td>' . $student['name'] .'</td>';
$concat .= '<td>' . $student['surname'] .'</td>';
//Number format es únicamente para reemplazar el punto por la coma que se utiliza en europa para los decimales.
$concat .= '<td>' . number_format($student['note'], 2, ',','.') .'</td>';
$concat .= '</tr>';
}
echo $concat;
?>
</table>
</body>
</html>
Con este código ya hemos creado la tabla en PHP, pero esta vez con un origen de datos que podría ser una base de datos o un objeto.
En este código almaceno todas las filas en la variable $concat, pero podríamos pintarlo directamente con echo y funcionaría exactamente igual. A partir de aquí te recomiendo que hagas tus propias pruebas y verás que poco a poco te irá saliendo.