Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Bettu en 02 de Febrero 2017, 20:28

Título: PHP cómo saber número de registros tabla Consulta base de datos MYSQL CU00842B
Publicado 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.

Código: [Seleccionar]
<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 ($result0);
    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>
Título: Re:PHP - Ejercicio CU00842B - Consultas MySQL
Publicado por: pacabeza en 02 de Febrero 2017, 20:42
Hola, yo copie y pegue en mi editor de texto, guarde con extención  .html pero no  puedo ver la pagina.
Título: Re:PHP - Ejercicio CU00842B - Consultas MySQL
Publicado por: Bettu en 03 de Febrero 2017, 18:17
Hola, tienes que grabarlo con extensión .php
Título: Re:PHP - Ejercicio CU00842B - Consultas MySQL
Publicado por: pedro,, en 03 de Febrero 2017, 19:29
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:
Código: [Seleccionar]
$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
Título: Re:PHP. Consulta a base de datos MYSQL. CU00842B
Publicado por: Bettu en 14 de Febrero 2017, 14:23
Hola, Envío el ejercicio 1.

Código: [Seleccionar]
<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
Título: Re:PHP. Consulta a base de datos MYSQL. CU00842B
Publicado por: pedro,, en 14 de Febrero 2017, 21:42
Hola Bettu.

El ejercicio ahora está completo y bien resuelto.

En cuanto a tu consulta, podrías probar con la siguiente consulta:

Código: [Seleccionar]
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
Título: Re:PHP. Consulta a base de datos MYSQL. CU00842B
Publicado por: Bettu en 14 de Febrero 2017, 22:12
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 
Título: Re:PHP. Consulta a base de datos MYSQL. CU00842B
Publicado por: pedro,, en 14 de Febrero 2017, 22:49
Prueba con esta consulta en la pestaña SQL, sin tener ninguna tabla seleccionada:

Código: [Seleccionar]
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
Título: Re:PHP. Consulta a base de datos MYSQL. CU00842B
Publicado por: Bettu en 15 de Febrero 2017, 11:34
Genio!!
Muchas gracias!!