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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 un contrôleur AvurnavController qui utilise ce modèle
Et ma vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Sauf que ça ne m'affiche que les derniers tickets actifs, ceux qui correspondent à la dernère zone.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 foreach ($this->temp as $toto) { echo $toto->numerotation_avurnav."<br>"; echo $toto->date_emission_avurnav."<br>"; }
Ce que j'aimerais faire en réalité, c'est la chose suivante (ici je mets en statique) :
et dans la vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager