Bonjour,
je commence seulement à m'intéresser à la poo et je dois dire que je suis depuis quelques jours dans une impasse.
Je ne dois surement pas tout comprendre ou alors, je bloque sur un truc que je n'ai pas intégré...
En ce moment, l'idée est de faire une requête dans une DB, de récupérer les résultats dans un objet et de pouvoir, bien sur, utiliser ces résultats plus tard dans le code.
J'utilise pour ce faire un fichier Specialite.php :
Un autre fichier SpecialiteDAO.php :
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 <?php class Specialite { private $id = Null; private $libelle = Null; function assign($row) { if (isset($row['id_specialite'])) { $this->setIdSpecialite($row['id_specialite']); } if (isset($row['libelle'])) { $this->setLibelle($row['libelle']); } } function getIdSpecialite() { return $this -> id; } function setIdSpecialite($id) { $this -> id = $id; } function getLibelle() { return $this -> libelle; } function setLibelle($libelle) { $this -> libelle = $libelle; } } ?>
Et enfin la page d'affichage :
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 <?php class SpecialiteDAO { /** * Recuperation de la liste des specialite * @return la liste des Specialite */ function getListeSpecialites() { try { $bdd = new PDO('mysql:host=localhost;dbname=xxxxxxx', 'root', 'xxxxxxxxx'); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $q = "SELECT * FROM specialite"; $q_result = $bdd -> query($q); if (!$q_result) die (" ECHEC : " . mysql_error()); //Traitement $result = Null; $i = 0; //Traitement while ($q_row = $q_result -> fetch(PDO::FETCH_ASSOC)) { $result[$i] = new Specialite(); $result[$i] -> assign($q_row); $i++; } //Nettoyage $q_result -> closeCursor(); // Termine le traitement de la requête; return (object)$result; } } ?>
Le var_dump commenté me retourne ceci :
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 <?php // Recuperation de la liste des specialites : $SpecialiteDAO = new SpecialiteDAO(); $spec = $SpecialiteDAO -> getListeSpecialites(); $speMAX = ????? //Je ne sais comment récupérer le nombre d'objets retournés :( //var_dump($spec); ?> <select id="specialite"> <option id_spec="0" selected>Indifférent</option> <?php $i=0; for ($i=0; $i<=$speMAX; $i++) { ?> <option id_spec="<?php echo $spec -> getIdSpecialite(); ?>"><?php echo $spec -> getLibelle(); ?></option> <?php } ?> </select>
J'ai tous mes éléments.
Code : Sélectionner tout - Visualiser dans une fenêtre à part object(stdClass)#13 (9) { [0]=> object(Specialite)#4 (2) { ["id:private"]=> string(1) "1" ["libelle:private"]=> string(11) "Cardiologue" } [1]=> object(Specialite)#5 (2) { ["id:private"]=> string(1) "2" ["libelle:private"]=> string(8) "Chir. CV" } [2]=> object(Specialite)#6 (2) { ["id:private"]=> string(1) "3" ["libelle:private"]=> string(14) "Chir digestive" } [3]=> object(Specialite)#7 (2) { ["id:private"]=> string(1) "4" ["libelle:private"]=> string(11) "Generaliste" } [4]=> object(Specialite)#8 (2) { ["id:private"]=> string(1) "5" ["libelle:private"]=> string(11) "Gynecologue" } [5]=> object(Specialite)#9 (2) { ["id:private"]=> string(1) "6" ["libelle:private"]=> string(12) "Orthopediste" } [6]=> object(Specialite)#10 (2) { ["id:private"]=> string(1) "7" ["libelle:private"]=> string(11) "Pneumologue" } [7]=> object(Specialite)#11 (2) { ["id:private"]=> string(1) "8" ["libelle:private"]=> string(10) "Radiologue" } [8]=> object(Specialite)#12 (2) { ["id:private"]=> string(1) "9" ["libelle:private"]=> string(12) "Rhumatologue" } }
Plusieurs choses donc :
je ne sais comment récupérer la valeur de ma variable $specMAX censée me faire la sortie de boucle.
Pire, je ne sais comment afficher les valeurs id ou libelle de mon objet.
Si une âme charitable pouvait éclairer ma lanterne et m'indiquer mes erreurs.
Merci
Partager