¿Por que se almacenan resultados utilizando diferente nombre para almacenar el array PHP?
La idea es que se haga una consulta 5 veces a la base de datos utilizando la misma funcion solo cambiando el nombre del pais en la consulta sql.
Este es mi codigo
class.php
public function MuestraDatos($pais) { $sql = "select * from demografia where continente = '".$pais."' order by 'decada' ASC"; $conexion = $this->conexion; $smtm = $conexion->prepare($sql); $smtm->execute(); while($fila = $smtm->fetch()) { $this->elementos[] = $fila; } return $this->elementos; }
INDEX.PHP
require_once 'class/class.php'; $Actividad1Obj = new Actividad1; //$MostrandoDatosAfrica = $Actividad1Obj->MuestraDatos('AFRICA'); $MostrandoDatosAmerica = $Actividad1Obj->MuestraDatos('AMERICA'); $MostrandoDatosAsia = $Actividad1Obj->MuestraDatos('asia'); $MostrandoDatosEuropa = $Actividad1Obj->MuestraDatos('EUROPA'); $MostrandoDatosMundo = $Actividad1Obj->MuestraDatos('MUNDO'); print_r($MostrandoDatosEuropa); exit;
Y este es mi resultado
Array ( [0] => Array ( [id] => 8 [0] => 8 [decada] => 1950 [1] => 1950 [poblacion] => 331 [2] => 331 [continente] => AMERICA [3] => AMERICA ) [1] => Array ( [id] => 15 [0] => 15 [decada] => 1950 [1] => 1950 [poblacion] => 1436 [2] => 1436 [continente] => ASIA [3] => ASIA ) [2] => Array ( [id] => 22 [0] => 22 [decada] => 1950 [1] => 1950 [poblacion] => 547 [2] => 547 [continente] => EUROPA [3] => EUROPA ) )
Al hacer el print_r de los datos de europa deberia mostrarme los datos de europa unicamente pero me muestra todos los que estan por encima ademas, podria cambiar el nombre de la funcion y crear una funcion por cada pais, pero preferiria acortar el codigo todo lo posible y ademas me interesa mas saber el por que se me almacenan también los superiores.
Respuesta de Ever Escoto