Bonjour tout le monde,
Je réalise un site web en PHP orientée objet donc je posséde des classes, des DAO(classe d'accées aux données), des controles et des vues.
Dans mes méthodes des DAO, je souhaite utiliser le constructeur de ma classe, Voici un exemple :
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 <?php class categorie{ private $Str_code; // Le code de la catégorie private $Str_libelle; // Le libéllé de la catégorie // Constructeur public function categorie($c=null, $l=null){ $this->code = $c; $this->libelle = $l; } // Methodes getteurs public function get_code() { return $this->Str_code; } public function get_libelle() { return $this->Str_libelle; } // Methodes setteurs public function set_code($lecode) { $this->Str_code=$lecode; } public function set_libelle($lelibelle) { $this->Str_libelle =$lelibelle; } } ?>J'ai un constructeur 'C_menuNeuf' :
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 <?php class DAO_Categorie { public static function ChargerTteCategorie() { $Col=new collection();//pas dans le while $req="SELECT * FROM categorie"; //echo $req; $jeu=mysql_query($req); while($ligne=mysql_fetch_array($jeu)) { $MaCategorie = new categorie($ligne["CODECAT"], $ligne["Ca_DESIGN"]); $Col->add($MaCategorie); } return $Col->getAll(); }
Une vue 'V_menuNeuf' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php $MesCategories = DAO_Categorie::ChargerTteCategorie(); require_once("Vues/V_menuNeuf.php"); ?>
Lorsque j'exécute mon site : il m'affiche 3 points, donc il voit bien qu'il y a 3 catégorie dans ma base de données MySql. Mais n'affiche pas leur nom.
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 <ul> <!-- Crée une liste à puces --> <tr> <th>Par les catégories</th> </tr> <?php // Pour chaque tableau de catégorie foreach ($MesCategories as $Categorie) { ?> <li><!-- Crée un nouvel élément pour une liste --> <!-- Permet d'exécuter l'action cat et de choissir la catégorie --> <a href="Index.php?action=categorie&choix=<?php echo $Categorie->get_code();?> "> <?php echo $Categorie->get_libelle();?> </a> </li> <?php } ?> </ul>
Par contre si la méthode de la DAO est la suivante :
là, lorsque j'exécute mon site web, j'obtien bien les noms de chaque catégorie.
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 public static function ChargerTteCategorie() { $Col=new collection();//pas dans le while $req="SELECT * FROM categorie"; //echo $req; $jeu=mysql_query($req); while($ligne=mysql_fetch_array($jeu)) { $MaCategorie=new categorie(); $MaCategorie->set_code($ligne["CODECAT"]); $MaCategorie->set_libelle($ligne["Ca_DESIGN"]); $Col->add($MaCategorie); } return $Col->getAll(); }
Donc je me demande si en PHP orientée objet, on peut utiliser le constructeur de la classe??
Si on le peux vraiment, d'aprés vous, que dois-je faire pour régler mon problème??
Merci d'avance en espérant que vous éclairerez ma lumière car cela fais plusieurs jours que j'y réfléchi...!!
Partager