Autor Tema: Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)  (Leído 7194 veces)

jimmorrison

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 51
  • la programacion es vida
    • Ver Perfil
Aqui esta el codigo  falta arreglar el contador
una pregunta ¿por que no me imprime el contador 2?

Código: [Seleccionar]
<!Doctype html>
<html lang="es">
<head>
<title>Consulas a bases de datos</title>
<meta name="description" content= description= "consultas a base de datos php y mysql, https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=613:ejemplo-consulta-php-mysql-select-bucle-while-mysqlifetcharray-recorrer-resultados-query-cu00842b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193">
<meta name="keywords" name="base de datos mysql html php">
</head>
<header>
<h1>Consultas con base de datos</h1>
</header>
<body>
<?php
$contador
0;
function 
mostrar_datos($a){
if($a!=null){
$cad $a['nombre'];
$sub substr($cad,0,1);
if($sub == 'm'){
echo 
'Nombre : ',$a['nombre'],'<br>';
echo 
'Su Nombre inicia con ',$sub,'<br>';
echo 
'Apellidos : ',$a['apellido'],'<br>';
echo 
'Direccion : ',$a['direccion'],'<br>';
echo 
'Telefono : ',$a['telefono'],'<br>';
echo 
'Edad : ',$a['edad'],'<br>';
echo 
'Altura : ',$a['altura'],'<br>';
$contador $contador+1;
echo '<br>';
}else{
echo 
'Nombre : ',$a['nombre'],'<br>';
echo 
'Apellidos : ',$a['apellido'],'<br>';
echo 
'Direccion : ',$a['direccion'],'<br>';
echo 
'Telefono : ',$a['telefono'],'<br>';
echo 
'Edad : ',$a['edad'],'<br>';
echo 
'Altura : ',$a['altura'],'<br>';
echo '<br>';}

}else{ echo 
'No hay mas datos por mostrar';}

}

$db mysqli_connect('sql204.byethost7.com','b7_16106679','acsdc120789','b7_16106679_mibasededatos') or
die(
'no hay conexion con la base de datos'.mysql_error);
mysqli_select_db($db'b7_16106679_mibasededatos');
$tildes $db->query("SET NAMES 'utf-8'");
$tabla=mysqli_query($db,'SELECT * FROM agenda');

while(
$rows=mysqli_fetch_array($tabla)){
mostrar_datos($rows);
}
echo 
' personas que inicia su nombre con "M" ',$contador;
mysqli_free_result($tabla);
mysqli_close($db);
?>

<footer>
<h5>Hecho por carlos enrique gil chong</h5>
<a href="https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=613:ejemplo-consulta-php-mysql-select-bucle-while-mysqlifetcharray-recorrer-resultados-query-cu00842b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193">aprenderaprogramar</a>
</footer>
</body>
</html>
« Última modificación: 27 de Mayo 2015, 06:53 por jimmorrison »

jimmorrison

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 51
  • la programacion es vida
    • Ver Perfil
me pueden ayudar con el contador por favor?

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Saludos no he logrado ejecutarlo porque aparece un error "no hay conexion con la base de datosmysql_error" pero parece que no estás teniendo en cuenta el ámbito de las variables. Cada llamada a la función genera un nuevo ámbito y la variable $contador parte de cero dentro de la función.

El ambito lo tienes explicado en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=36&Itemid=60 en la entrega CU00205A, pero te recomiendo que leas desde el principio hasta esa entrega por lo menos para entender el ámbito.

Para solucionarlo debes llevar el contador en el bucle while y pasárselo como parámetro a la función. Al recibirlo desde fuera ya la función conocerá el valor del contador.

Saludos!

jimmorrison

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 51
  • la programacion es vida
    • Ver Perfil
gracias  javi in the sky  eres grande

soy un nob  al no meter el contador en el bucle pfffffff  se me fue cerebro , apenas le estoy pillando a esto de las funciones y parametros todavia no soy muy bueno usandolas jeje


aqui esta el codigo

Código: [Seleccionar]
<!Doctype html>
<html lang="es">
<head>
<title>Consulas a bases de datos</title>
<meta name="description" content= description= "consultas a base de datos php y mysql, https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=613:ejemplo-consulta-php-mysql-select-bucle-while-mysqlifetcharray-recorrer-resultados-query-cu00842b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193">
<meta name="keywords" name="base de datos mysql html php">
</head>
<header>
<h1>Consultas con base de datos</h1>
</header>
<body>
<?php
$contador 
0;
function 
mostrar_datos($a,$b){
if($a!=null){
$cad $a['nombre'];
$sub substr($cad,0,1);
if($sub == 'm'){
echo 
'Nombre : ',$a['nombre'],'<br>';
echo 
'Su Nombre inicia con ',$sub,'<br>';
echo 
'Apellidos : ',$a['apellido'],'<br>';
echo 
'Direccion : ',$a['direccion'],'<br>';
echo 
'Telefono : ',$a['telefono'],'<br>';
echo 
'Edad : ',$a['edad'],'<br>';
echo 
'Altura : ',$a['altura'],'<br>';
echo 
'numero de personas que inician con la letra ''m :' ,$b,'<br>';
echo '<br>';
}else{
echo 
'Nombre : ',$a['nombre'],'<br>';
echo 
'Apellidos : ',$a['apellido'],'<br>';
echo 
'Direccion : ',$a['direccion'],'<br>';
echo 
'Telefono : ',$a['telefono'],'<br>';
echo 
'Edad : ',$a['edad'],'<br>';
echo 
'Altura : ',$a['altura'],'<br>';
echo '<br>';}

}else{ echo 
'No hay mas datos por mostrar';}

}

$db mysqli_connect('sql204.byethost7.com','b7_16106679','acsdc120789','b7_16106679_mibasededatos') or
die(
'no hay conexion con la base de datos'.mysql_error);
mysqli_select_db($db'b7_16106679_mibasededatos');
$tildes $db->query("SET NAMES 'utf-8'");
$tabla=mysqli_query($db,'SELECT * FROM agenda');

while(
$rows=mysqli_fetch_array($tabla)){
$contador=$contador+1;
mostrar_datos($rows,$contador);

}

mysqli_free_result($tabla);
mysqli_close($db);
?>

<footer>
<h5>Hecho por carlos enrique gil chong</h5>
<a href="https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=613:ejemplo-consulta-php-mysql-select-bucle-while-mysqlifetcharray-recorrer-resultados-query-cu00842b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193">aprenderaprogramar</a>
</footer>
</body>
</html>


jimmorrison

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 51
  • la programacion es vida
    • Ver Perfil
disculpen no puedo hacer la suma de los habitantes en el ejercicio 2

no se por que no se guardan los valores en la variable suma ya revise el codigo y corre bien

Código: [Seleccionar]
<?php
$suma
=0;
$x 1;
function 
mostrar_datos($a,$suma,$x){
if($a != null){

if($a['tienemetro']== 1){
echo 
'ID ',$a['id'],'<br>';
echo 
'Ciudad : ',$a['ciudad'],'<br>';
echo 
'pais : ',$a['pais'],'<br>';
echo 
'habitantes : ',$a['habitantes'],'<br>';
echo 
'superficie : ',$a['superficie'],'<br>';
echo 
'Tiene Metro : ',$a['tienemetro'],'<br>';


}else {
echo 'ID ',$a['id'],'<br>';
echo 
'Ciudad : ',$a['ciudad'],'<br>';
echo 
'pais : ',$a['pais'],'<br>';
echo 
'habitantes : ',$a['habitantes'],'<br>';
echo 
'superficie : ',$a['superficie'],'<br>';
echo 
'Tiene Metro : ',$a['tienemetro'],'<br>';
}

while(
$x<=10){
 $suma $suma $a['habitantes'];
$x=$x+1;
}
echo $suma,'<br>';
}

}

$db mysqli_connect('sql204.byethost7.com','b7_16106679','acsdc120789','b7_16106679_mibasededatos') or
die(
'error de conexion'.mysql_error);
mysqli_select_db($db'b7_16106679_mibasededatos');
$tildes $db->query("SET NAMES 'utf-8'");
$tabla mysqli_query($db,'SELECT * FROM ciudades');

while(
$rows mysqli_fetch_array($tabla)){

mostrar_datos($rows,$suma,$x);
}

?>

jimmorrison

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 51
  • la programacion es vida
    • Ver Perfil
no me sale ya le meti mucho tiempo a este tema pero no me sale ya estoy frustrado

Código: [Seleccionar]
<?php
$suma
=0;
$contador 0;
function 
mostrar_datos($a,$contador,$suma){
if($a != null){
/*foreach($a as $valor => $k){
  $cantidad = $k['habitantes'];
  $suma=$suma+$cantidad;
  $contador++;
  }
  echo $suma;*/
  //echo count($a['habitantes']),'<br>';

if($a['tienemetro']== 1){
echo 
'ID ',$a['id'],'<br>';
echo 
'Ciudad : ',$a['ciudad'],'<br>';
echo 
'pais : ',$a['pais'],'<br>';
echo 
'habitantes : ',$a['habitantes'],'<br>';
echo 
'superficie : ',$a['superficie'],'<br>';
echo 
'Tiene Metro : ',$a['tienemetro'],'<br>';


}else {
echo 'ID ',$a['id'],'<br>';
echo 
'Ciudad : ',$a['ciudad'],'<br>';
echo 
'pais : ',$a['pais'],'<br>';
echo 
'habitantes : ',$a['habitantes'],'<br>';
echo 
'superficie : ',$a['superficie'],'<br>';
echo 
'Tiene Metro : ',$a['tienemetro'],'<br>';
}

}

}

function 
mostrar_datos2($x$suma){

for($i=0$i<10$i++){

$suma=$suma+$x['habitantes'];
}
echo $suma;
}
$db mysqli_connect('sql204.byethost7.com','b7_16106679','acsdc120789','b7_16106679_mibasededatos') or
die(
'error de conexion'.mysql_error);
mysqli_select_db($db'b7_16106679_mibasededatos');
$tildes $db->query("SET NAMES 'utf-8'");
$tabla mysqli_query($db,'SELECT * FROM ciudades');

while(
$rows mysqli_fetch_array($tabla)){
mostrar_datos($rows,$contador,$suma);
}

mysqli_data_seek($tabla,0);
while(
$extraido mysqli_fetch_array($tabla)){
mostrar_datos2($extraido,$suma);
}

mysqli_free_result($tabla);
mysqli_close($db);

?>

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, el código no está bien planteado. Yo te puedo pegar el código correcto (de hecho puedes ver una solución en www.aprenderaprogramar.com/foros/index.php?topic=1598), pero lo que te será útil es que tú mismo aprendas a plantear código si quieres llegar a ser un buen programador. Léete esto https://www.aprenderaprogramar.com/foros/index.php?topic=1313.0 creo que si quieres puedes, el cómo es comenzando con el curso de fundamentos de la programación. Te puede parecer que eso sea como ir para atrás, pero tomando una buena base es como podrás avanzar como programador, de otra manera será difícil. Saludos,

jimmorrison

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 51
  • la programacion es vida
    • Ver Perfil
gracias alex por el consejo me voy a pasar por los fundamentos de programacion los deje de lado por que ya me urge aprender php y mysql para añadirlo a mi curriculum .

 

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