Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Bettu en 02 de Febrero 2017, 20:28
-
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>
-
Hola, yo copie y pegue en mi editor de texto, guarde con extención .html pero no puedo ver la pagina.
-
Hola, tienes que grabarlo con extensión .php
-
Hola Bettu.
Te falta el ejercicio 1.
El ejercicio 2 esta correcto. Solo comentarte, aunque no viene en el temario, se puede saber el número de registros en la tabla mediante:
$totalreg= mysqli_num_rows($result);
Y pacabeza, además de la extensión, tendrías que tener un servidor instalado si lo ejecutas en local.
Saludos. ;D
-
Hola, Envío el ejercicio 1.
<html>
<head> <meta charset='utf-8'> </head>
<body>
<?php
$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 nombre FROM agenda2017");
echo "<br/> Agenda 2017 <br/>";
// agregué esta linea para probar la instrucción: mysqli_num_rows($result)
echo "<br/> Total de personas en la agenda: " . mysqli_num_rows($result) . "<br/><br/>";
echo "Nombres con M <br/>";
$totalreg = 0;
while ($fila=mysqli_fetch_array($result)){
if (substr($fila['nombre'],0,1)=="M" ){
// Muestro los nombres para un control mismo que el ejercicio no lo pidió
echo "<br/> -> ".$fila['nombre'];
$totalreg++;
}
}
echo "<br/><br/> La cantidad de Nombres con M es: ". $totalreg.". <br/>";
echo "<br/> FIN";
mysqli_free_result($result);
mysqli_close($link);
?>
</body>
</html>
Pregunta: existe alguna forma de realizar directamente el SELECT con el WHERE y que realice el filtro por la primera letra de un campo?
Muchas gracias por vuestra ayuda!!
Saludos
-
Hola Bettu.
El ejercicio ahora está completo y bien resuelto.
En cuanto a tu consulta, podrías probar con la siguiente consulta:
SELECT * FROM agenda2017 WHERE nombre LIKE 'M%';
Lo probé por consola y funciona, con código php no lo probé.
Por cierto, te edito tu último mensaje y cambio los datos de tu base de datos y contraseña para que nadie haga algo que no deba. Esos datos deberías conocerlos solo tu.
Saludos. ;D
-
Hola Pedro,
Muchas gracias por todas tus recomendaciones, probé el select que me pasaste y funcionó perfecto.
Voy a modificar mi password, ya que entregué otros ejercicios con esos datos.
Ahora estoy en el ejercicio CU00844B, y tengo un problema con el phpMyAdmin, hago todos los pasos para copiar la tabla agenda, la copia ya que me aparece un mensaje como que fue copiada correctamente, pero luego no consigo verla en la base, solo aparecen las dos primeras tablas que cree a mano.
De nuevo mil gracias por tu dedicación, es de mucha ayuda para mí.
Saludos
Bettu
-
Prueba con esta consulta en la pestaña SQL, sin tener ninguna tabla seleccionada:
CREATE TABLE agenda2 AS SELECT * FROM agenda;
Luego le das a la derecha donde pone continuar y se ejecutará la consulta, con eso haces una copia de la tabla agenda junto con su contenido.
Saludos. ;D
-
Genio!!
Muchas gracias!!