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.