Salut
Je voudrais afficher le résultat d'une jointure entre la table categories et table sous-categories mais j'ai pas réussi , voici le code
SousCategorie.Class.php
SousCategorieManager.Class.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 <?php class SousCategorie { protected $_id ; protected $_nom ; protected $_descr ; protected $_idCat ; // Un tableau de données doit être passé à la fonction (d'où le préfixe « array »). public function __construct(array $donnees) { $this->hydrate($donnees); } // hydrate prend les valeurs des setters pas les getters public function hydrate(array $donnees) { foreach ($donnees as $key => $value) { // On récupère le nom du setter correspondant à l'attribut. $method = 'set'.ucfirst($key) ; // Si le setter correspondant existe. if (method_exists($this, $method)) { // On appelle le setter. $this->$method($value); } } } // Les getters public function id() { return $this->_id ; } public function nom() { return $this->_nom ; } public function descr() { return $this->_descr ; } public function idCat() { return $this->_idCat ; } //Les setters public function setIdSousCat($id) { $this->_id = (int) $id ; } public function setNomSousCat($nom) { if (is_string($nom) && strlen($nom) <= 30) { $this->_nom = $nom ; } } public function setDescrSousCat($descr) // id de sous-catégorie { if (is_string($descr) && strlen($descr) <= 200) { $this->_descr = $descr ; } } public function setIdCat($idCat) // Id de catégorie { $this->_idCat = (int) $idCat ; } } ?>
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 <?php class SousCategorieManager { private $_db; // Instance de PDO public function __construct($db) { $this->setDb($db); } public function setDb(PDO $db) { $this->_db = $db; } //fonction getList tous le table public function getList() { $sousCategories = array(); $q = $this->_db->prepare('SELECT * FROM souscategories s LEFT JOIN categories c on s.idCat = c.idCat ORDER BY s.idSousCat'); $q->execute(); while ($donnees = $q->fetch(PDO::FETCH_ASSOC)) { $sousCategories[] = new SousCategorie($donnees); } return $sousCategories; } } ?>
sous-categorie.php
Je voudrais afficher le nom de categorie dans la page sous-catégorie sachant que j'ai crée aussi des Class pour le categorie, pouvez-vous m'aider s'il vous plait ?
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
50
51 <?php session_start(); include("../redirection.php"); // On enregistre notre autoload. function chargerClasse($classname) { require ('../classes/'.$classname.'.Class.php'); } spl_autoload_register('chargerClasse') ; include('../db.php') ; $managerObject = new SousCategorieManager($db); $sousCategories = $managerObject->getList(); ?> <table cellpadding="0" cellspacing="0" border="0" class="stdtable stdtablequick stdtablecb"> <thead> <tr> <th class="head0">ID</th> <th class="head1">Nom</th> <th class="head0">Déscription</th> <th class="head1">Catégorie</th> <th class="head0" style="text-align:center">Modifier</th> <th class="head1" style="text-align:center">Supprimer</th> </tr> </thead> <?php foreach ($sousCategories as $unSousCat) echo ' <tr> <td>',$unSousCat->id(),'</td> <td>',htmlspecialchars($unSousCat->nom()),'</td> <td>',htmlspecialchars($unSousCat->descr()),'</td> <td>le nom de catégorie</td> <td class="center"> <a href="./edit.php?id=',$unSousCat->id(),'" class="toggle"><img src="../images/edit.png" width=18" /></a></td> <td class="center"> <a href="./delete.php?id=',$unSousCat->id(),'" class=""><img src="../images/trash.png" /></a></td> </tr>'; ?> </tbody> </table>
Merci d'avance
Partager