Bonjour à tous,
Je tente actuellement de mettre en place un système de slider dynamique, et je galère un peu.
Voici comment j'ai imaginé les choses.
Tables SGBD:
- table posts (gestion des pages)
Avec les champs id, name, slug, content, type, slider_id
- table images(gestion des images)
Avec les champs id, name, slider_id
- table sliders(gestion des sliders)
Avec les champs id, name, page_id
Ensuite, dans mon l'index qui gère les pages, j'ai réalisé ceci:
J'inclus donc le fichier slider.php si le champ slider_id est différent de 0.
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 <?php /** * GESTION des PAGES * */ $slug = $db->quote($_GET['slug']); $select = $db->query("SELECT * FROM posts WHERE slug = $slug AND type='page'"); $page = $select->fetch(); $page_id = $page['id']; $title = $page['name']; $slider = $page['slider']; ?> <?php if($slider != 0){ include 'partials/slider.php'; } ?>
Mon inclusion fonctionne nickel, et le slider s'affiche uniquement sur les pages dont le champ slider n'est pas null.
Ensuite, j'ai donc le fichier slider.php que voici:
Le slider est fonctionnel, le seul souci que j'ai, c'est que dans ce slider se trouvent toutes les images présentent dans ma table, alors que je souhaite afficher uniquement les images qui correspondent au slider en question...
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 <?php /** * SELECT DU SLIDER **/ $slider = $db->query(" SELECT sliders.id, sliders.name, sliders.page_id FROM sliders LEFT JOIN images ON images.slider_id; ")->fetch(); /** * SELECT DES IMAGES **/ $images = $db->query(" SELECT images.id, images.name, images.slider_id FROM images INNER JOIN sliders ON sliders.id = images.slider_id ")->fetchAll(); ?> <!-- POUR LE SLIDER --> <div class="carousel-holder"> <div class="col-md-12"> <div id="carousel-example-generic" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li> <li data-target="#carousel-example-generic" data-slide-to="1"></li> <li data-target="#carousel-example-generic" data-slide-to="2"></li> </ol> <div class="carousel-inner"> <?php $n=0; foreach ($images as $k[] => $image): $n++ ?> <div class="item<?php if($n==1) echo ' active' ?>"> <img src="<?= WEBROOT; ?>img/sliders/<?= resizedName($image['name'], 680, 390); ?>" class="img-responsive"> </div> <?php endforeach ?> </div> <a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left"></span> </a> <a class="right carousel-control" href="#carousel-example-generic" data-slide="next"> <span class="glyphicon glyphicon-chevron-right"></span> </a> </div> </div> </div>
J'ai essayé diverses requêtes SQL, mais je commence à m'embrouiller je pense.
J'en appel donc à votre savoir lol, histoire de voir où je bug
D'avance merci à vous pour l'aide
Partager