Bonjour,
Je dois développer une application en zend et j'ai un petit soucis.
Je dois générer une arborescence à partir d'une table qui contient une clé secondaire qui est la clé primaire (autojointure possible).
J'ai un petit script qui fonctionne bien en "php classique" (pas sous zend) et je veux traduire ce script en une fonction que je peux utiliser sous zend framework.
Mon problème est que dans mon script, je fais un mysql_fetch_array() et je teste si j'ai un résultat ou non. Sous zend, je m'en sort pas car je ne trouve pas d'équivalent.
Voici un petit bout de code (seulement la fonction récursive) qui j'espère sera assez clair :
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 function genCode($ccat,$pcat,$site){ static $chaineCat = ""; static $chainePar = ""; static $niveau = -1; if($pcat == ""){ echo "fini"; return; } // Sélection des données dans la base $sql = "select * from t_rubrique where t_rubrique_parent = $ccat and pk_t_rubrique > $pcat and pk_t_site = $site order by pk_t_rubrique"; $enreg = mysql_query($sql); $result = mysql_fetch_array($enreg); // On verifie si la requete retourne quelque chose if($result == ""){ $ccat = rec($chainePar); $pcat = rec($chaineCat); // Suppression du dernier parent ou de la derniere categorie dans l'arborescence $chaineCat = substr($chaineCat,0,(strlen($chaineCat))-(strlen($pcat)+1)); $chainePar = substr($chainePar,0,(strlen($chainePar))-(strlen($ccat)+1)); genCode($ccat,$pcat,$site); } else{ $pniv = $niveau; // Recuperation des variables en cours $ccat = $result['pk_t_rubrique']; $pcat = $result['t_rubrique_parent']; $libelle = $result['t_rubrique_lib']; $niveau = $result['t_rubrique_niveau']; for($k=0; $k<=$niveau;$k++){ $puce .= "-------"; } echo "$puce $libelle / $ccat - $pcat<br>"; // Formation des chaines de caracteres de stockage des arborescences $chaineCat .= "*".$ccat; $chainePar .= "*".$pcat; genCode($ccat,$pcat,$site); } } // Fin genXML
Partager