Página 9: HTML del bloque 1 del IDEVICE 3
Más adelante verás que en nuestro reto final crearemos una web que utilizaréis dos tipos de usuarios:
En resumen, necesitas que tu página web realice dos acciones sobre la base de datos: insertar datos en la BD y recoperarlos. ¿Cómo realizarás esto? Mediante código PHP. ¡No es difícil! Para ello te presentamos este ejercicio guiado que te mostrará los comandos necesarios para realizar estas operaciones. Sigue los ejemplos ejecutándolos en tu recién estrenado servidor XAMPP.
En este ejercicio guiado vamos a basar nuestro ejemplo en una base de datos utilizada para almacenar la información de los libros de una biblioteca. Usarás tu web para recopila datos de nuevos libros a añadir y para mostrar después los existentes en la web:
Para poder insertar valores en una base de datos y extraerlos posteriormente, tendrás primero que crear dicha base de datos y la tabla donde se almacenarán los datos.
Para esto, recuerda los pasos seguidos en el punto anterior y:
Para ingresar datos en una nueva tabla de la base de datos, primero necesitarás una página HTML que recopile esos datos del usuario. El siguiente código HTML hace eso y pasa la información a un script PHP:
<form action="insert.php" method="post">
Usuario: <input type="text" name = "user" /><br/>
Contraseña: <input type="password" name = "pass" /><br/>
Título: <input type="text" name = "field1" /><br/>
Autor: <input type="text" name = "field2" /><br/>
Categoría: <select name="field3">
<option value="comic">Cómic</option>
<option value="novela">Novela</option>
<option value="educacion">Educación</option>
<option value="poesia">Poesía</option>
<option value="ensayo">Ensayo</option>
</select><br/>
Año: <input type="number" name = "field4" /><br/>
ISBN: <input type="text" name = "field5" /><br/>
<input type="submit" />
</form>
Investiga las siguientes cuestiones:
El código HTML anterior mostrará al usuario 7 campos de texto, en los cuales el usuario puede ingresar datos y un botón Submit (Enviar). Al hacer clic en el botón Submit, los datos enviados por el usuario se pasarán a un script llamado insert.php.
El script PHP a utilizar para insertar en la base de datos los datos recopilados en el formulario, puede tener una estructura como la siguiente:
<?php
$database = "biblioteca.db";
$username = $mysqli->real_escape_string($_POST['user']);$password = $mysqli->real_escape_string($_POST['pass']);//Conectamos con la BD indicando su nombre y el usuario y la contraseña indicados.$mysqli = new mysqli("localhost", $username, $password, $database);
$field1 = $mysqli->real_escape_string($_POST['field1']);
$field2 = $mysqli->real_escape_string($_POST['field2']);
$field3 = $mysqli->real_escape_string($_POST['field3']);
$field4 = $mysqli->real_escape_string($_POST['field4']);
$field5 = $mysqli->real_escape_string($_POST['field5']);
$query = "INSERT INTO table_name (titulo, autor, categoria, anyo, isbn)
VALUES ('{$field1}','{$field2}','{$field3}','{$field4}','{$field5}')";
//Enviamos el comando SQL
$mysqli->query($query);//Cerramos la conexión a la BD
$mysqli->close();
?>
En el código utilizado observa y analiza:
Una vez que el usuario envía la información, el script insert.php la guardará en la tabla de la base de datos. ¡Pon en funcionamiento este código de inserción en la base de datos y genera al menos 3 entradas en la tabla libros!
Ahora, deseamos generar toda la información de la base de datos para que el usuario pueda verla en la página.
Lo primero que necesitarás hacer es una consulta a la base de datos. Recuerda, de SQL, que el primer comando que necesitarás usar es la sentencia SELECT FROM que, en este ejemplo, tiene la siguiente sintaxis: SELECT * FROM libros;
Podemos elegir mostrar los datos que recuperemos en forma de una tabla en la página HTML. Para ello podemos usar un script PHP dentro del código HTML de la página que, mediante un bucle, vaya tomando los valores y construyendo la estructura HTML de la tabla. Observa esta solución propuesta:
<html>
<body>
<?php
$username = "username";
$password = "password";
$database = "biblioteca.db";
$mysqli = new mysqli("localhost", $username, $password, $database);
$query = "SELECT * FROM table_name";
echo '<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td> <font face="Arial">Título</font> </td>
<td> <font face="Arial">Autor</font> </td>
<td> <font face="Arial">Categoría</font> </td>
<td> <font face="Arial">Año</font> </td>
<td> <font face="Arial">ISBN</font> </td>
</tr>';
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
$field1name = $row["titulo"];
$field2name = $row["autor"];
$field3name = $row["categoria"];
$field4name = $row["anyo"];
$field5name = $row["isbn"];
echo '<tr>
<td>'.$field1name.'</td>
<td>'.$field2name.'</td>
<td>'.$field3name.'</td>
<td>'.$field4name.'</td>
<td>'.$field5name.'</td>
</tr>';
}
$result->free();
}
?>
</body>
</html>
Aquí puedes aprender cómo:
Este código imprimirá el contenido de la tabla y agregará una fila adicional para cada registro en la base de datos, dando formato a los datos a medida que se imprimen. Ponle un título a la página, dale formato atractivo con los conocimientos que has adquirido en los apartados anteriores y muestra a la clase tu página de ejemplares de la biblioteca. ¡Atrévete a añadirle un estilo CSS!
El método HTTP POST es el método utilizado en la web (protocolo http) para enviar datos al servidor web.
<?php echo $variablename; ?>