Foros del Web » Programando para Internet » PHP »

AyudaConexion con base de datos recorrido array

Estas en el tema de AyudaConexion con base de datos recorrido array en el foro de PHP en Foros del Web. Podrian ayudarme con mi codigo por favor , se guarda el arreglo en la variable pero no suma los valores Código: <?php $suma=0; $x = ...
  #1 (permalink)  
Antiguo 29/05/2015, 09:48
 
Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
AyudaConexion con base de datos recorrido array

Podrian ayudarme con mi codigo por favor , se guarda el arreglo en la variable pero no suma los valores

Código:
<?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);
}

?>
  #2 (permalink)  
Antiguo 29/05/2015, 10:35
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: AyudaConexion con base de datos recorrido array

Si tienes problemas con un array lo primero, var_dump($array);

Ahora, al mirar el bucle while que tienes construído, lo que haces es equivalente a multiplicar el valor de habitantes por 10, no estás recorriendo el array, solo sumas 10 lo que hay en $a['habitantes'] 10 veces.

Si lo que pretendías era sumar el número de habitantes de todas las ciudades, así no lo vas a conseguir, puesto que tienes un bucle que se ejecuta 10 veces para cada resultado de la consulta, es decir para cada ciudad(no sé porque has elegido 10, si es porque tienes solo 10 ciudades que harás cuando tengas 11, luego 12, etc).

Si quieres saber el número de habitantes totales, o bien lo haces a través de otra consulta o haces la suma en el primer while:
Código PHP:
Ver original
  1. $suma = 0;
  2. while($rows = mysqli_fetch_array($tabla)){
  3.     $suma += $rows['habitantes'];
  4.     mostrar_datos($rows,$suma,$x);
  5. }
  6. echo $suma.'<br/>';

Técnicamente lo más correcto sería obtenerlo con otra consulta, pero de esta última manera te ahorras una consulta y como el bucle ya está hecho...

Todo esto es suponiendo que he interpretado bien lo que pretendías, porque no has dado ninguna información de lo que querías hacer ni de que había en tus consultas o variables, así que puede que haya escrito algo que no tiene nada que ver con lo que tienes.

Un saludo.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP

Etiquetas: mysql, recorrido, select, sql, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:26.