Autor Tema: PHP cómo saber número de registros tabla Consulta base de datos MYSQL CU00842B  (Leído 4372 veces)

Bettu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 28
    • Ver Perfil
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>
« Última modificación: 09 de Mayo 2017, 17:45 por Alex Rodríguez »

pacabeza

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Re:PHP - Ejercicio CU00842B - Consultas MySQL
« Respuesta #1 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.

Bettu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 28
    • Ver Perfil
Re:PHP - Ejercicio CU00842B - Consultas MySQL
« Respuesta #2 en: 03 de Febrero 2017, 18:17 »
Hola, tienes que grabarlo con extensión .php

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:PHP - Ejercicio CU00842B - Consultas MySQL
« Respuesta #3 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

Bettu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 28
    • Ver Perfil
Re:PHP. Consulta a base de datos MYSQL. CU00842B
« Respuesta #4 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
« Última modificación: 14 de Febrero 2017, 21:44 por pedro,, »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:PHP. Consulta a base de datos MYSQL. CU00842B
« Respuesta #5 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
« Última modificación: 14 de Febrero 2017, 21:48 por pedro,, »

Bettu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 28
    • Ver Perfil
Re:PHP. Consulta a base de datos MYSQL. CU00842B
« Respuesta #6 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 

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:PHP. Consulta a base de datos MYSQL. CU00842B
« Respuesta #7 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

Bettu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 28
    • Ver Perfil
Re:PHP. Consulta a base de datos MYSQL. CU00842B
« Respuesta #8 en: 15 de Febrero 2017, 11:34 »
Genio!!
Muchas gracias!!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".