El objetivo final es obtener una aplicación web capaz de gestionar una agenda. El título del ejercicio hace referencia a la funcionalidad añadida a la aplicación:
Estos ejercicios van encadenados. Cada ejercicio se puede hacer a partir del ejercicio anterior, añadiendo las páginas necesarias.
En estos ejercicios no se hace ninguna comprobación sobre los datos introducidos por el usuario, por lo que la aplicación no puede considerarse segura.
Escriba un programa que permita crear una base de datos.
Enlace a ejercicio Base de datos 1-1
// Tamaño de los campos en la tabla
$tamNombre = 40; // Tamaño del campo Nombre
$tamApellidos = 60; // Tamaño del campo Apellidos
// Consulta de creación de tabla en MySQL
$consulta = "CREATE TABLE $dbTabla (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nombre VARCHAR($tamNombre),
apellidos VARCHAR($tamApellidos),
PRIMARY KEY(id)
)";
// Consulta de creación de tabla en SQLite
$consulta = "CREATE TABLE $dbTabla (
id INTEGER PRIMARY KEY,
nombre VARCHAR($tamNombre),
apellidos VARCHAR($tamApellidos)
)";
Volver al principio de la página
Amplie el ejercicio anterior de manera que permita incluir registros en la base de datos.
Enlace a ejercicio Base de datos 1-2
// Añadir un registro
$nombre = recoge('nombre');
$apellidos = recoge('apellidos');
$consulta = "INSERT INTO $dbTabla
(nombre, apellidos)
VALUES (:nombre, :apellidos)";
$result = $db->prepare($consulta);
if ($result->execute(array(':nombre' => $nombre, ':apellidos' => $apellidos))) {
print "<p>Registro creado correctamente.</p>\n";
} else {
print "<p>Error al crear el registro.</p>\n";
}
Volver al principio de la página
Amplie el ejercicio anterior de manera que permita listar los registros de la base de datos.
Enlace a ejercicio Base de datos 1-3
// Seleccionar todos los registros
$consulta = "SELECT * FROM $dbTabla";
$result = $db->query($consulta);
foreach ($result as $valor) {
print " <tr>
<td>$valor[nombre]</td>
<td>$valor[apellidos]</td>
</tr>\n";
}
Volver al principio de la página
Amplie el ejercicio anterior de manera que permita borrar individualmente los registros de la base de datos.
Enlace a ejercicio Base de datos 1-4
// Imprime casilla de verificación
$consulta = "SELECT * FROM $dbTabla";
$result = $db->query($consulta);
foreach ($result as $valor) {
print " <td align=\"center\"><input type=\"checkbox\"".
" name=\"id[$valor[id]]\" /></td>";
}
// Recoge los registros seleccionados
$id = recogeMatriz('id');
foreach ($id as $indice => $valor) {
$consulta = "DELETE FROM $dbTabla
WHERE id=:indice";
$result = $db->prepare($consulta);
if ($result->execute(array(':indice' => $indice))) {
print "<p>Registro borrado correctamente.</p>\n";
} else {
print "<p>Error al borrar el registro.</p>\n";
}
}
Volver al principio de la página
Amplie el ejercicio anterior de manera que permita buscar registros de la base de datos.
Enlace a ejercicio Base de datos 1-5
// Imprime casilla de verificación
$nombre = recoge('nombre');
$apellidos = recoge('apellidos');
$consulta = "SELECT * FROM $dbTabla
WHERE nombre LIKE :nombre
AND apellidos LIKE :apellidos";
$result = $db->prepare($consulta);
$result->execute(array(':nombre' => "%$nombre%", ':apellidos' => "%$apellidos%"));
El comodín debe incluirse al ejecutar la consulta, no se podrían incluir en la definición de $consulta.
Volver al principio de la página
Amplie el ejercicio anterior de manera que permita modificar registros de la base de datos.
Enlace a ejercicio Base de datos 1-6
// Imprime botón radio
$consulta = "SELECT * FROM $dbTabla";
$result = $db->query($consulta);
foreach ($result as $valor) {
print " <td align=\"center\"><input type=\"radio\" "
."name=\"id\" value=\"$valor[id]\" /></td>";
}
// Recoge el registro seleccionado
$id = recoge('id');
$consulta = "SELECT * FROM $dbTabla
WHERE id=:id";
$result = $db->prepare($consulta);
$result->execute(array(':id' => $id));
$valor = $result->fetch();
// Muestra valor
print " <td><input type=\"text\" name=\"nombre\" size=\"$tamNombre\" "
."maxlength=\"$tamNombre\" value=\"$valor[nombre]\" /></td>"
// Control oculto con el id del registro modificado
<p><input type=\"hidden\" name=\"id\" value=\"$id\" />
<input type=\"submit\" value=\"Actualizar\" /></p>
$nombre = recoge('nombre');
$apellidos = recoge('apellidos');
$id = recoge('id');
$consulta = "UPDATE $dbTabla
SET nombre=:nombre, apellidos=:apellidos
WHERE id=:id";
$result = $db->prepare($consulta);
if ($result->execute(array(':nombre' => $nombre, ':apellidos' => $apellidos, ':id' => $id))) {
print "<p>Registro modificado correctamente.</p>\n";
} else {
print "<p>Error al modificar el registro.</p>\n";
}
Volver al principio de la página
Esta página forma parte del curso "Páginas web con PHP" disponible en http://www.mclibre.org
Esta obra está bajo una licencia de Creative
Commons Reconocimiento-CompartirIgual 3.0 España.