Hola, les envío el ejercicio cu00842b del curso elemental de programación web con PHP resuelto. El resultado no es exactamente el mismo, debido a que yo cargué las ciudades hasta Caracas y inventé la cantidad de habitantes.
Desde ya muchas gracias por vuestras recomendaciones.
<html>
<head> <meta charset='utf-8'> </head>
<body>
<?php
function muestraciudad ($resultado,$ultimo,$habitantes,$primero) {
if ($ultimo!=="S"){
if ($primero==="S"){ echo " ".$resultado;}
else { echo ", ".$resultado;}
}
else {echo " y ".$resultado." es: ". $habitantes. " habitantes. <br/>";}
}
$link = mysqli_connect($hostname , $nombreUsuario , $contraseña);
mysqli_select_db($link, $nombreBaseDatos);
$tildes = $link->query("SET NAMES 'utf8'"); // para que muestre las tildes
$result = mysqli_query($link, "SELECT * FROM ciudades");
$totalreg = 0;
while ($fila=mysqli_fetch_array($result)){
$totalreg++;
}
mysqli_data_seek ($result, 0);
echo "La suma de habitantes de";
$ultimo ="N";
$primero ="S";
$habitantes = 0;
$metros = 0;
for ($i=0; $i<$totalreg-1;$i++){
$fila=mysqli_fetch_array($result);
$ciudad = $fila['ciudad'];
$habitantes += $fila['habitantes'];
$metros += $fila['tieneMetro'];
muestraciudad($ciudad,$ultimo,$habitantes,$primero);
$primero = "N";
}
$ultimo = "S";
$fila=mysqli_fetch_array($result);
$ciudad = $fila['ciudad'];
$habitantes += $fila['habitantes'];
$metros += $fila['tieneMetro'];
muestraciudad($ciudad,$ultimo,$habitantes,$primero);
echo "<br/> De estas ciudades tienen metro: ".$metros." ciudades. <br/>";
mysqli_free_result($result);
mysqli_close($link);
?>
</body>
</html>