Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2015, 10:03
Avatar de hhelmanj
hhelmanj
 
Fecha de Ingreso: julio-2014
Ubicación: Santiago de Chile
Mensajes: 10
Antigüedad: 10 años, 4 meses
Puntos: 0
Problemas para recorrer Array Multidimensional Dinamico

Estimados,

Resulta que estoy trabajando con una clase PHP

Código PHP:
Ver original
  1. Class ConsultarDB extends Conexion
  2. {
  3.  
  4.     private $conexion;
  5.     public function __construct(){
  6.         $this->conexion = parent::conectar(); //creo una variable con la conexión
  7.         return $this->conexion;                                      
  8.     }
  9.     public function consultarBD($consulta, $valores = array())
  10.     {  //funcion principal, ejecuta todas las consultas
  11.         $resultado = false;
  12.         if($statement = $this->conexion->prepare($consulta)){  //prepara la consulta
  13.             if(preg_match_all("/(:\w+)/", $consulta, $campo, PREG_PATTERN_ORDER)){ //tomo los nombres de los campos iniciados con :xxxxx
  14.                 $campo = array_pop($campo); //inserto en un arreglo
  15.                 foreach($campo as $parametro){
  16.                     $statement->bindValue($parametro, $valores[substr($parametro,1)]);
  17.                 }
  18.             }
  19.             try {
  20.                 if (!$statement->execute()) { //si no se ejecuta la consulta...
  21.                     print_r($statement->errorInfo()); //imprimir errores
  22.                 }
  23.                 $resultado = $statement->fetchAll(PDO::FETCH_ASSOC); //si es una consulta que devuelve valores los guarda en un arreglo.
  24.                 $statement->closeCursor();
  25.             }
  26.             catch(PDOException $e){
  27.                 echo "Error de ejecución: \n";
  28.                 print_r($e->getMessage());
  29.             }  
  30.         }
  31.         return $resultado;
  32.         $this->conexion = null; //cerramos la conexión
  33.     } /// Termina funcion consultarBD
  34. }/// Termina clase conectorDB
  35. //*****************************************************************
  36.  
  37. class RankingPersonas
  38. {
  39.     private $ranking;
  40.     public function obtenerRankPeriodo($desde, $hasta, $cantidad=10)
  41.     {
  42.         $consulta= "select top $cantidad cobrador
  43.                     from tve
  44.                     where fecdoc >= '$desde' and fecdoc <= '$hasta'
  45.                     group by cobrador
  46.                     order by sum(total) desc";
  47.         $oConectar = new ConsultarDB; //instanciamos conector
  48.         $this->ranking = $oConectar->consultarBD($consulta,$valores);
  49.         return $this->ranking;
  50.     }
  51. }

En el index:

Código PHP:
Ver original
  1. $ranking = new RankingPersonas();
  2. $rank=$ranking->obtenerRankPeriodo('01-03-2015', '16-03-2015','10');
  3. print_r($rank);

Array devuelvo:

Array ( [0] => Array ( [cobrador] => YAZMIN SABINA MENDOZA LASMA ) [1] => Array ( [cobrador] => MARIA DE LOS ANGELES ADASME LAGOS ) [2] => Array ( [cobrador] => CRISTIAN ANDRES SABJA RAMOS ) [3] => Array ( [cobrador] => PABLO IGNACIO SOTO PALACIOS ) [4] => Array ( [cobrador] => MARIA JOSE PEREZ FUENTES ) [5] => Array ( [cobrador] => DARWIN STALYN VILLACRES YUPA ) [6] => Array ( [cobrador] => JAVIER ALEJANDRO FUENTES BARRAZA ) [7] => Array ( [cobrador] => LUIS LEONEL VALLADARES MELLA ) [8] => Array ( [cobrador] => EMILIO THIELEMANN ROJAS ) [9] => Array ( [cobrador] => JULIO CABEZAS GUAJARDO ) )

Se supone que en la capa HTML "no puedo saber" el nombre de la clave de ese array, en este caso "cobrador" y necesito recorrerlo, por supuesto considerando que ese array puede tener mas columnas...

Estoy tratando de resolver esto y no logro....sera alguien capaz de ayudarme, no