Bonjour.
Je cherche à créer un lien en utilisant la notion d'objet non procédural.
Ce fichier c'est l'appel à la base de donnée et mes classes pour effectuer
deux affichages.
J'arrive à faire afficher par "lister" l'ensemble de ma table de données.
Aussi afficher, je peux afficher selon le ID.
Mon problème se trouve dans mon fichier index.php qui serait d'afficher
en fonction du ID que je désire à faire afficher en détails comme dans une
autre section de mon fichier index.php soit via un include().
Mais, j'essaie de penser Objet et je ne vois pas comment je peux faire
pour faire cela. Plus bas mon index.php.
Autant que possible, je sépare mon code php du html, c'est pour cela que
dans index, je n'ai que la partie foreach. Mais, je dois indiquer dans cette
partie le lien du ID.
Le fichier pour le HTML et le résultats 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 <?php $dnsh = "mysql:host=localhost;dbname=ptg"; $user = "root"; $pass = ""; class dbcon{ private static $_instance; public static function pdo_connection($dnsh, $user, $pass) { if (!self::$_instance) { try { self::$_instance = new PDO($dnsh, $user, $pass); self::$_instance->setAttribute(PDO::ATTR_PERSISTENT,true); self::$_instance->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } catch (PDOException $est) { die($est->getMessage()); } } return self::$_instance; } private function __construct(){} private function __clone(){} } class Artiste{ private $_conn; public function __construct($cnx){ $this->_conn = $cnx; } public function lister(){ $stmt = $this->_conn->prepare('SELECT * FROM artistes'); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_OBJ); } public function afficher($id=null){ $stmt = $this->_conn->prepare('SELECT * FROM artistes WHERE id = :id'); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_OBJ); } } $cnx = dbcon::pdo_connection($dnsh,$user,$pass); $oArtiste = new Artiste($cnx);
Ce que je veux obtenir, chaque ligne est un lien (une laison via le ID) qui va faire afficher
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 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> <title></title> <meta name="keywords" content="" /> <meta name="description" content="" /> <link href="style.css" rel="stylesheet"> </head> <body> <div class="wrapper"> <header class="header"> </header><!-- .header--> <div class="middle"> <div class="minheight"> <div class="container"> <main class="content"> bbbbbb</br> </main><!-- .content --> </div><!-- .container--> <aside class="left-sidebar"> <main class="content"> <?php include_once('pdo.php'); $ListerArtistes = $oArtiste->lister(); foreach($ListerArtistes as $l_artiste) { echo $l_artiste->id ." ". $l_artiste->prenom ." ". $l_artiste->nom ."<br />"; } $AfficherArtistes = $oArtiste->afficher(1); foreach($AfficherArtistes as $a_artiste) { echo $a_artiste->id ." ". $a_artiste->prenom ." ". $a_artiste->nom ."<br />"; } ?> </main><!-- .content --> </aside><!-- .left-sidebar --> </div><!-- .minheight--> </div><!-- .middle--> <footer class="footer"> </footer><!-- .footer --> </div><!-- .wrapper --> </body> </html>
le détail. J'ai un objet avec deux fonctions. Je n'arrive pas à me servir du 2e avec la 1re.
Partager