Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: pedro,, en 17 de Marzo 2016, 22:21
-
Buenas. Posible solución al ejercicio CU00844B del curso de programación web php desde cero.
EJERCICIO 1
Realiza una consulta y muestra por pantalla los datos correspondientes a filas de la tabla agenda donde la edad sea mayor o igual que 20 y la altura sea mayor o igual que 1.75.
EJERCICIO 2
Crea una tabla que sea copia de agenda a la que denomines agenda3 y un archivo php que al ejecutarlo realice los siguientes procesos:
a) Mostrar el contenido inicial de la tabla agenda3 por pantalla.
b) Eliminar todos los registros de la tabla agenda3 cuyo campo edad sea mayor o igual a 34 y mostrar el contenido actual de la tabla por pantalla.
c) Insertar dos nuevos registros en la tabla agenda3 (elige tú unos datos cualquiera) y mostrar el contenido actual de la tabla por pantalla.
d) Eliminar todos los registros de la tabla agenda3 usando TRUNCATE y mostrar el contenido actual de la tabla por pantalla.
e) Insertar tres nuevos registros en la tabla agenda3 (elige tú unos datos cualquiera) y mostrar el contenido actual de la tabla por pantalla.
f) Eliminar todos los registros de la tabla agenda usando DELETE sin condiciones y mostrar el contenido actual de la tabla por pantalla.
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Ejercicio 1</h1>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
$result = mysqli_query($link, "SELECT * FROM agenda WHERE edad >= 20 AND altura >= 1.75");
while ($fila = mysqli_fetch_array($result)){
if ($fila !=NULL) {
echo "- Nombre: ".$fila['nombre'];
echo " - Apellidos: ".$fila['apellidos'];
echo " - Dirección: ".$fila['direccion'];
echo " - Teléfono: ".$fila['telefono'];
echo " - Edad: ".$fila['edad'];
echo " - Altura: " . $fila['altura'] ."<br/>";
echo "**********************************<br/>";}
else {echo "<br/>No hay más datos!!! <br/>";}
}
mysqli_free_result($result);
mysqli_close($link);
?>
<hr>
<h1>Ejercicio 2</h1>
<?php
function mostrarDatos () {
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
$result = mysqli_query($link, "SELECT * FROM agenda3");
$fila = mysqli_fetch_array($result);
if($fila == NULL){
echo 'Tabla vacía';
}
while($fila = mysqli_fetch_array($result)){
echo "- Nombre: " . $fila['nombre'];
echo " - Apellidos: " . $fila['apellidos'];
echo " - Dirección: " . $fila['direccion'];
echo " - Teléfono: " . $fila['telefono'];
echo " - Edad: " . $fila['edad'];
echo " - Altura: " . $fila['altura'] ."<br/>";
echo "**********************************<br/>";
}
mysqli_free_result($result);
mysqli_close($link);
}
?>
<h3>apartado a</H3>
<?php
mostrarDatos();
?>
<h3>apartado b</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$result = mysqli_query($link, "DELETE FROM agenda3 WHERE edad >= 34");
mysqli_close($link);
mostrarDatos();
?>
<h3>apartado c</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Lucas', 'Petrillo Moreno', 'C/ Pintor Goya nº 33', '654421122', 88, 1.85)");
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Roberto', 'Petrillo Moreno', 'C/ Pintor Goya nº 7', '954421122', 77, 1.65)");
mysqli_close($link);
mostrarDatos();
?>
<h3>apartado d</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
mysqli_query($link, "TRUNCATE TABLE agenda3");
mysqli_close($link);
mostrarDatos();
?>
<h3>apartado e</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Lucas', 'Petrillo Moreno', 'C/ Pintor Goya nº 33', '654421122', 88, 1.85)");
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Roberto', 'Petrillo Moreno', 'C/ Pintor Goya nº 7', '954421122', 77, 1.65)");
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Kevin', 'Panenca Patero', 'C/ Molinete nº 7', '954433122', 55, 2.01)");
mysqli_close($link);
mostrarDatos();
?>
<h3>apartado f</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
mysqli_query($link, "DELETE FROM agenda3");
mysqli_close($link);
mostrarDatos();
?>
</body>
</html>
Recordar que hay que cambiar los datos de la base de datos a utilizar y contraseña.
http://aprendehtml.byethost3.com/CU00844B/ejerciciosCU00844b.php
Saludos.
-
Buenas tardes Pedro me surge una duda al ver la url con el ejercicio, en el apartado a) aparece tabla vacía, eso lo veo normal si venimos de una ejecución previa habrá quedado vacía, pero en el apartado e) sólo muestra Roberto Petrillo Moreno y Kevin Panenca Patero ¿Por qué no está apareciendo Lucas Petrillo?
Saludos
-
Buenas.
El problema está en la función mostrarDatos(), mas en concreto en que repito lo siguiente...
$fila = mysqli_fetch_array($result);
y en la entrada del bucle lo volvía a poner...
while($fila = mysqli_fetch_array($result)){
con lo cual, antes de imprimir el primer dato de la tabla, se pasaba al segundo.
he variado la función quedando así:
ffunction mostrarDatos () {
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
$result = mysqli_query($link, "SELECT * FROM agenda3");
while($fila = mysqli_fetch_array($result)){
echo "- Nombre: " . $fila['nombre'];
echo " - Apellidos: " . $fila['apellidos'];
echo " - Dirección: " . $fila['direccion'];
echo " - Teléfono: " . $fila['telefono'];
echo " - Edad: " . $fila['edad'];
echo " - Altura: " . $fila['altura'] ."<br/>";
echo "**********************************<br/>";
}
mysqli_free_result($result);
mysqli_close($link);
}
También he añadido una función al principio del segundo ejercicio que se encarga de copiar datos a la tabla que se usa desde otra tabla existente. Dejo el código completo:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Ejercicio 1</h1>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
$result = mysqli_query($link, "SELECT * FROM agenda WHERE edad >= 20 AND altura >= 1.75");
while ($fila = mysqli_fetch_array($result)){
if ($fila !=NULL) {
echo "- Nombre: ".$fila['nombre'];
echo " - Apellidos: ".$fila['apellidos'];
echo " - Dirección: ".$fila['direccion'];
echo " - Teléfono: ".$fila['telefono'];
echo " - Edad: ".$fila['edad'];
echo " - Altura: " . $fila['altura'] ."<br/>";
echo "**********************************<br/>";}
else {echo "<br/>No hay más datos!!! <br/>";}
}
mysqli_free_result($result);
mysqli_close($link);
?>
<hr>
<h1>Ejercicio 2</h1>
<?php
function llenarTabla() {
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$result = mysqli_query($link, "INSERT INTO agenda3 SELECT agenda. * FROM agenda");
mysqli_free_result($result);
mysqli_close($link);
}
function mostrarDatos () {
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
$result = mysqli_query($link, "SELECT * FROM agenda3");
while($fila = mysqli_fetch_array($result)){
echo "- Nombre: " . $fila['nombre'];
echo " - Apellidos: " . $fila['apellidos'];
echo " - Dirección: " . $fila['direccion'];
echo " - Teléfono: " . $fila['telefono'];
echo " - Edad: " . $fila['edad'];
echo " - Altura: " . $fila['altura'] ."<br/>";
echo "**********************************<br/>";
}
mysqli_free_result($result);
mysqli_close($link);
}
?>
<h3>apartado a</H3>
<?php
llenarTabla();
mostrarDatos();
?>
<h3>apartado b</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$result = mysqli_query($link, "DELETE FROM agenda3 WHERE edad >= 34");
mysqli_close($link);
mostrarDatos();
?>
<h3>apartado c</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Lucas', 'Petrillo Moreno', 'C/ Pintor Goya nº 33', '654421122', 88, 1.85)");
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Roberto', 'Petrillo Moreno', 'C/ Pintor Goya nº 7', '954421122', 77, 1.65)");
mysqli_close($link);
mostrarDatos();
?>
<h3>apartado d</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
mysqli_query($link, "TRUNCATE TABLE agenda3");
mysqli_close($link);
mostrarDatos();
?>
<h3>apartado e</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
$tildes = $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Lucas', 'Petrillo Moreno', 'C/ Pintor Goya nº 33', '654421122', 88, 1.85)");
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Roberto', 'Petrillo Moreno', 'C/ Pintor Goya nº 7', '954421122', 77, 1.65)");
mysqli_query($link, "INSERT INTO agenda3 VALUES ('Kevin', 'Panenca Patero', 'C/ Molinete nº 7', '954433122', 55, 2.01)");
mysqli_close($link);
mostrarDatos();
?>
<h3>apartado f</H3>
<?php
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);
mysqli_query($link, "DELETE FROM agenda3");
mysqli_close($link);
mostrarDatos();
?>
</body>
</html>
Saludos y gracias Mario.