Buenas.
El problema está en la función mostrarDatos(), mas en concreto en que repito lo siguiente...
y en la entrada del bucle lo volvía a poner...
con lo cual, antes de imprimir el primer dato de la tabla, se pasaba al segundo.
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.