Bonjour à toutes et à tous.
J'ai tenté de faire un MVC de base mais je doute que mon index principal soit comme ceci un contrôleur
je crois que mon model est correcte et mon layout mais mon fichier show lui je ne suis pas capable de
mieux le couper pour en faire deux étant donnée mon CSS qui fait deux blocs. Je souhaite de l'aide
pour m'aider à corriger mes erreurs sans nécessairement aller dans la complexité.
Mon index qui se trouve être le contrôleur pour le model.
Mon fichier de connexion en PDO.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php // fichier /INDEX.PHP: require_once('model/model.php'); $oArtiste = new Artiste($cxn); require('view/show.php') ?>
Mon fichier model qui fait deux requêtes d'une liste et le détail.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php // fichier /MODEL/CONNECT.PHP: $dnsh = "mysql:host=localhost;dbname=ptg"; $user = "root"; $pass = ""; $cxn = new PDO($dnsh, $user, $pass); $cxn ->setAttribute(PDO::ATTR_PERSISTENT,true); //a le même effet qu'un singleton, sans les inconvénients $cxn ->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
La vue, je ne vois pas comment je peux séparer ma vue étant donnée que j'ai un bloc CSS et que j'ai deux affichages
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 <?php // fichier /MODEL/MODEL.PHP: include_once ('connect.php'); class Artiste{ private $_conn; public function __construct($cxn){ $this->_conn = $cxn; } 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); } }
un d'une liste et l'autre le détail.
Et le template qui affiche la vue.
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 <?php ob_start() // fichier /VIEW/SHOW.PHP: ?> <div class="wrapper"> <header class="header"> </header><!-- .header--> <div class="middle"> <div class="minheight"> <div class="container"> <main class="content"> <?php $artiste_id = (empty($_GET['artiste']))?'1':(int)$_GET['artiste']; $AfficherArtistes = $oArtiste->afficher($artiste_id); foreach($AfficherArtistes as $a_artiste) { echo $a_artiste->id ." ". $a_artiste->prenom ." ". $a_artiste->nom; } ?> </main><!-- .content --> </div><!-- .container--> <aside class="left-sidebar"> <main class="content"> <?php $ListerArtistes = $oArtiste->lister(); foreach($ListerArtistes as $l_artiste) { echo "<a href='http://localhost/index.php?artiste=" . $l_artiste->id . "'>".$l_artiste->prenom ." ". $l_artiste->nom . "</a></br>"; } ?> </main><!-- .content --> </aside><!-- .left-sidebar --> </div><!-- .minheight--> </div><!-- .middle--> <footer class="footer"> </footer><!-- .footer --> </div><!-- .wrapper --> <?php $content= ob_get_clean(); ?> <?php include_once('layout.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
18fichier /VIEW/LAYOUT.PHP: <!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="/view/style.css" rel="stylesheet"> </head> <body> <?php echo $content; ?> </body> </html>
Partager