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: jimmorrison en 27 de Mayo 2015, 06:49

Título: Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)
Publicado por: jimmorrison en 27 de Mayo 2015, 06:49
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>
Título: Re:Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)
Publicado por: jimmorrison en 28 de Mayo 2015, 18:25
me pueden ayudar con el contador por favor?
Título: Re:Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)
Publicado por: javi in the sky en 28 de Mayo 2015, 21:44
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!
Título: Re:Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)
Publicado por: jimmorrison en 29 de Mayo 2015, 02:17
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>

Título: Re:Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)
Publicado por: jimmorrison en 29 de Mayo 2015, 03:55
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);
}

?>
Título: Re:Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)
Publicado por: jimmorrison en 30 de Mayo 2015, 02:01
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);

?>
Título: Re:Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)
Publicado por: Alex Rodríguez en 30 de Mayo 2015, 20:54
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,
Título: Re:Ejemplo consulta PHP MySql. SELECT. recorrer resultados query (CU00842B)
Publicado por: jimmorrison en 03 de Junio 2015, 04:22
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 .