Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: bermartinv en 31 de Marzo 2017, 11:57

Título: Curso PHP.Ejemplo consultas básicas a bases de datos MySQL queries CU00842B
Publicado por: bermartinv en 31 de Marzo 2017, 11:57
Adjunto mis soluciones al tema CU00842B del manual de programador web con PHP y editor Notepad++.

Citar
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

El enlace:
http://cursophp.byethost14.com/aprenderaprogramar/baseDatos/nombresMSQL.php (http://cursophp.byethost14.com/aprenderaprogramar/baseDatos/nombresMSQL.php)

Y el código:
Código: [Seleccionar]
<html><head><meta charset="utf-8"> </head>

<body>

<?php

$contador 
0;

$link mysqli_connect("sql300.byethost14.com""b14_19400633""xxxxxxxx");

mysqli_select_db($link"b14_19400633_baseDatos");

$tildes $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes correctamente

echo 'En la base de datos los nombres que empiezan por M son: ';

$result mysqli_query($link"SELECT nombre FROM agenda WHERE nombre like 'M%'");

    while(
$filas=mysqli_fetch_array($result)){
        
        echo 
'<br/>'.$filas['nombre'].'';
        
        
$contador++;
        
    }


    
mysqli_free_result($result);

    
mysqli_close($link);

echo 
'<br/>.Son  '.$contador.' en total.';

?>

</body></html>



Y par el segundo ejercicio

Citar
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.

El enlace:
http://cursophp.byethost14.com/aprenderaprogramar/baseDatos/habitantesMetro.php (http://cursophp.byethost14.com/aprenderaprogramar/baseDatos/habitantesMetro.php)

Y el código:

Código: [Seleccionar]
<html><head><meta charset="utf-8"> </head>

<body>

<?php
$link 
mysqli_connect("sql300.byethost14.com""b14_19400633""xxxxxxxxx");

mysqli_select_db($link"b14_19400633_baseDatos");

$tildes $link->query("SET NAMES 'utf8'"); //Para que se muestren las tildes correctamente

$result mysqli_query($link"SELECT * FROM ciudades");

$contador_ciudades 0;

echo 
'La suma de todos los habitantes en ';

while(
$filas=mysqli_fetch_array($result)){
    
    
    
$habitantes += $filas['habitantes']; 
    
        
    
    
$metro += $filas['tieneMetro'];
    
    
$ciudad[$contador_ciudades] = $filas['ciudad'];
    
    
$contador_ciudades++;
        
    }
   
    for (
$i=0;$i<$contador_ciudades;$i++){
        echo 
$ciudad[$i].',';
    }
   
   
   echo 
' es '.$habitantes;
   echo 
'.Y hay '.$metro.' que tienen metro';
    
mysqli_free_result($result);

    
mysqli_close($link);


?>


</body>
</html>

Saludos
Título: Re:Curso PHP.Ejemplo consulta PHP MySQL.CU00842B
Publicado por: pedro,, en 02 de Abril 2017, 23:47
Hola bermartinv

El ejercicio 1 es correcto.

En el segundo ejercicio tuve que inicializar a cero estas dos variables antes de usarlas dentro del while, sino no me funcionaba:

Código: [Seleccionar]
$habitantes = 0;
$metro = 0;

Con esas dos líneas añadidas, el código me funcionó perfectamente.

Saludos.
Título: Re:Curso PHP.Ejemplo consulta PHP MySQL.CU00842B
Publicado por: bermartinv en 03 de Abril 2017, 09:37
Gracias pedro,,
A mi me funciona bien sin declarar primero a 0 las variables. De todas maneras la buena formas de escribir codigo con PHP es inicializarlas. Este error es la costumbre de rabajar con otros lenguajes como javaScript que no hace falta inicializarlos y solo con su declaración es suficiente.

Lo dicho, muchas gracias pedro,,