2016-08-09 61 views
0

Ich habe diese Funktion in meinem Controller:CakePHP Rückkehr ein seltenes JSON-Daten mit meiner benutzerdefinierten Abfrage

public function estadisticas() 
{ 
    $conn = ConnectionManager::get('default'); 
    $stmt = $conn->execute(
     'SELECT  c.nombre, 
     c.idcomplejo, 
     t.canchafk, 
     Count(*) AS cantidadturnos 
FROM  turno t 
INNER JOIN usuario u ON u.idusuario = t.usuariofk 
INNER JOIN cancha ca ON t.canchafk = ca.idcancha 
INNER JOIN complejo c ON c.idcomplejo = ca.complejofk 
INNER JOIN ciudad cc ON cc.idciudad=c.ciudadfk 
WHERE  u.escomplejo=0 
AND  cc.paisfk="1" 
AND  u.paisfk="1" 
AND  noasistio=0 
AND  fecha BETWEEN "2016-07-01" AND  "2016-07-30" 
GROUP BY canchafk'); 


    $turnos = $stmt ->fetchAll('assoc'); 

    $this->set('turnos',$turnos); 


} 

Ich brauche benutzerdefinierte Abfrage zu machen, weil dificult ist es zu machen wie CakePHP sagte. So ist das Ergebnis für jede "turnos":

array(4) { ["nombre"]=> string(7) "Campnou" ["idcomplejo"]=> string(1) "1" ["canchafk"]=> string(1) "1" ["cantidadturnos"]=> string(2) "35" } 

array(4) { ["nombre"]=> string(6) "Uñazo" ["idcomplejo"]=> string(1) "3" ["canchafk"]=> string(1) "6" ["cantidadturnos"]=> string(2) "29" } 

diese wie das Gebiet 17 weitere Arrays.

Wenn ich dies tun:

<?php foreach ($turnos as $turno): ?> 
     <tr> 
      <br><?php var_dump($turno) ?></br> 
      <td><?= h($turno['idComplejo']) ?></td> 
      <td><?= h($turno['canchaFK']) ?></td> 
      <td><?= h($turno['cantidadTurnos']) ?></td> 
     </tr> 
     <?php endforeach; ?> 

Die Zeilen sind leer, aber cakephp zeigen Sie mir 19 leere Zeile (die gesamten Reihen der Abfrage) .In phpMyAdmin die Abfrage funktioniert perfekt.

Also .. Ich habe ein Problem versuchen, die Daten aus dem JSON zu zeigen.

Vielen Dank für Hilfe

Antwort

0

Die Arrays Sie bekommen haben wieder alle Schlüssel in Kleinbuchstaben, aber Sie versuchen, aus Ihrer Sicht die Dinge mit mixedcase Schlüssel zu lesen. Array-Schlüssel unterscheiden zwischen Groß- und Kleinschreibung.