Affichage dynamique des résultats d'une requête
Bonjour,
Je cherche à afficher un récapitulatif des tickets actifs par zone, pour une table donnée, de là façon suivante :
ANTIFER (ma zone) :
01 03 05 (mes tickets actifs)
CASQUETS :
02 08 10
PAS DE CALAIS :
04 11 12
etc
Pour ce faire, j'ai une classe modèle se référant à ma table sous Mysql :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
class Tavurnav extends Zend_Db_Table_Abstract
{
(..diverses méthodes...)
//recuperation de la liste des zones possedant tickets actifs
public function findZones() {
$select = $this->select()
->distinct()
->from('Avurnav','zone_concernee')
->where ('actif = 1')
->order('zone_concernee');
$resultat = $this->fetchAll($select);
return $resultat;
}
//liste des actifs, en renseignant zone
public function listActifZone($zone_concernee){
$select = $this->select()
->from ($this)
->where ('actif = 1')
->where('zone_concernee = ? ',$zone_concernee)
->order('numerotation_avurnav DESC');
$actif = $this->fetchAll($select);
return $actif;
}
(...) |
J'ai ici une méthode qui récupère mes zones où il y a des tickets actifs, et une autre qui va chercher les tickets actifs d'une zone donnée. Rien de sorcier.
J'ai un contrôleur AvurnavController qui utilise ce modèle
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
public function testzonesAction() {
$avurnav = new Tavurnav;
$leszones = array();
//recuperation des zones avec tickets actifs
$listedeszones = $avurnav->findZones();
$i=0;
//recuperation des zones qui ont tickets actifs et stockage dans array
foreach($listedeszones as $zones){
$leszones[] = $zones->zone_concernee;
}
$tailleleszones = sizeof($leszones);
print_r ($leszones);
echo "<br>";
$temp="";
for ($indice=0 ; $indice < $tailleleszones ; $indice++) {
$temp="listeparzone".$indice;
$this->view->temp= $avurnav->listActifZone($leszones[$indice]);
echo $temp;
Zend_Debug::dump($this->view->temp);
}
//Zend_Debug::dump($this->view->temp);
} |
Et ma vue :
Code:
1 2 3 4 5 6 7
|
foreach ($this->temp as $toto) {
echo $toto->numerotation_avurnav."<br>";
echo $toto->date_emission_avurnav."<br>";
} |
Sauf que ça ne m'affiche que les derniers tickets actifs, ceux qui correspondent à la dernère zone.
Ce que j'aimerais faire en réalité, c'est la chose suivante (ici je mets en statique) :
Code:
1 2 3 4 5
|
$this->view->listezones = $avurnav->findZones();
$this->view->listezone0 = $avurnav->listActifZone("ANTIFER");
$this->view->listezone1 = $avurnav->listActifZone("CASQUETS");
$this->view->listezone2 = $avurnav->listActifZone("PAS DE CALAIS"); |
et dans la vue :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
foreach ($this->listezone0 as $avnav0)
{
echo $avnav0->numerotation_avurnav;
}
foreach ($this->listezone1 as $avnav1)
{
echo $avnav1->numerotation_avurnav;
}
//etc |