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 : 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 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 : 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);
  }
Et ma vue :
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>";
 
	}
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 : 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");
et dans la 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
 
foreach ($this->listezone0 as $avnav0)
{
 
	echo $avnav0->numerotation_avurnav;
 
	}
foreach ($this->listezone1 as $avnav1)
{
 
	echo $avnav1->numerotation_avurnav;
 
	}
//etc