Hola, dejo otra posible solución. Ejercicio CU00842B del tutorial básico de programación web: PHP desde cero.
EJERCICIO 1
Utilizando la tabla agenda que hemos empleado en los ejemplos y funciones para manejo de cadenas PHP, realiza una consulta a la base de datos para extraer todos los nombres y determina cuántos nombres en la base de datos empiezan por M.
Ejemplo de resultados a obtener: En la base de datos los nombres que empiezan por M son: 2
EJERCICIO 2
Utilizando la tabla <<ciudades>> que hemos utilizado para ejercicios de entregas anteriores del curso, crea un archivo php donde se realice una consulta a la base de datos para extraer todos los datos de la tabla y a continuación calcula la suma de habitantes de todos los países y cuántas de estas ciudades tienen metro. Muestra el resultado por pantalla.
Ejemplo de resultados a obtener:
La suma de habitantes de México D.F., Barcelona, Buenos Aires, Medellín, Lima, Caracas, Santiago, Antigua, Quito y La Habana es: 5663886 habitantes
De estas ciudades tienen metro: 5 ciudades.
<html>
<head>
<meta charset="utf-8"> </head>
<body>
<?php // EJERCICIO 1 function comprobarNombres($resultados) { if ($resultados !=NULL) { return strncmp($resultados['nombre'], 'M', 1); } else {echo "<br/>No hay más datos!!! <br/>";} } $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"); $coincidencias = 0; while ($fila = mysqli_fetch_array($result)){ if(comprobarNombres($fila)) { $coincidencias++; } } mysqli_free_result($result); mysqli_close($link); echo 'En la base de datos los nombre que empiezan por M son: ' . $coincidencias; ?>
<hr>
<?php // EJERCICIO 2 //Ejemplo aprenderaprogramar.com function dameNumeroHabitantes($resultados) { if ($resultados !=NULL) { return $resultados['habitantes']; } } function dameNombreCiudad($resultados) { if ($resultados !=NULL) { return $resultados['ciudad']; } } function dameTinenMetro($resultados) { if ($resultados !=NULL) { return $resultados['tieneMetro']; } } function muestraResultado($numeroHabitantes, $ciudades, $tienenMetro){ $msg = 'La suma de habitantes de '; for($i = 0;$i < count($ciudades); $i++) { if($i == (count($ciudades)-2)) { $msg = $msg . $ciudades[$i] . ' y '; } else if($i ==(count($ciudades)-1)) { $msg = $msg . $ciudades[$i] . ' es: ' . $numeroHabitantes . ' habitantes.<br/>'; } else { $msg = $msg . $ciudades[$i] . ', '; } } $msg = $msg . '<br/>De estas ciudades tienen metro: ' . $tienenMetro . ' ciudades.'; echo $msg; } $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 ciudades"); $numeroHabitantes = 0; $tienenMetro = 0; $i = 0; while ($fila = mysqli_fetch_array($result)){ $ciudades[$i++]= dameNombreCiudad($fila); $numeroHabitantes += dameNumeroHabitantes($fila); $tienenMetro += dameTinenMetro($fila); } mysqli_free_result($result); mysqli_close($link); muestraResultado($numeroHabitantes, $ciudades, $tienenMetro); ?>
</body>
</html>
http://aprendehtml.byethost3.com/CU00842B/ejerciciosCU00842B.php
En las dos lineas...
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreConexión);quité los datos de mi base de datos y la contraseña.
Saludos.
Buenas.
Creo haber entendido bien lo que dices, así que saqué esas funciones y el código me quedó de la siguiente manera...
<html>
<head>
<meta charset="utf-8"> </head>
<body>
<?php // EJERCICIO 1 $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"); $coincidencias = 0; while ($fila = mysqli_fetch_array($result)){ if(!strncmp($fila['nombre'], 'M', 1)) { $coincidencias++; } } mysqli_free_result($result); mysqli_close($link); echo 'En la base de datos los nombres que empiezan por M son: ' . $coincidencias; ?>
<hr>
<?php // EJERCICIO 2 $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 ciudades"); $numeroHabitantes = 0; $tienenMetro = 0; $i = 0; $msg = 'La suma de habitantes de '; while ($fila = mysqli_fetch_array($result)){ $ciudades[$i++]= $fila['ciudad']; $numeroHabitantes += $fila['habitantes']; $tienenMetro += $fila['tieneMetro']; } mysqli_free_result($result); mysqli_close($link); for($i = 0;$i < count($ciudades); $i++) { if($i == (count($ciudades)-2)) { $msg = $msg . $ciudades[$i] . ' y '; } else if($i ==(count($ciudades)-1)) { $msg = $msg . $ciudades[$i] . ' es: ' . $numeroHabitantes . ' habitantes.<br/>'; } else { $msg = $msg . $ciudades[$i] . ', '; } } $msg = $msg . '<br/>De estas ciudades tienen metro: ' . $tienenMetro . ' ciudades.'; echo $msg; ?>
</body>
</html>
gracias por tu tiempo.
Saludos.