Slideshow incrémenté automatiquement

Faratnight

Faratnight Le 7 janvier 2019 à 16:12 (Édité le 25 janvier 2019 à 17:54)

Hello,
J'ai une BDD de séries et j'aimerais créer un slideshow dynamique et automatique.
La partie d'automatisation de défilement est déjà gérée par JS (trouvée sur W3schools).Toutes les 2 secondes, mon image tourne.

Cependant, j'aimerais que ce slideshow inclue au fur et à mesure de mes ajouts de séries, les nouvelles jaquettes.
Là, je fais quelque chose de 'sale' en HTML car je dois définir à la main les 10 séries 

      <div class="mySlides fade">
            <div class="numbertext">1/10</div>
            <img src="content/photos/series/community.jpg">
            <div class="text">Community</div>
</div>



Je voudrais que via une requête sql, je cherche l'identifiant 'idSerie' qui est en auto-increment et diffuse la jaquette correspondane.
Ainsi, si la série Community est représentée par l'identifiant idSerie 1, la jaquette.de  Community apparaisse.
J'avais commencé cela mais cela ne fonctionne pas:

<?php
include_once("inc/database.inc.php");
$slideshow = $cooking->prepare("SELECT * FROM series WHERE idSerie= ?");
$slideshow->execute(array($idSerie));
?>       

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
 <div class="slideshow-container">
        <div class="mySlides fade">
        <?php
        /*foreach ($idSerie as $numero)
            {
            echo "<img src='content/photos/series/" . $idSerie['img'] . "' alt=" . $idSerie['img'] . "'>";
            }*/
        ?>
        </div>
  </div>
</body>


Plus loin j'aimerais même que ce slideshow renvoie vers la bonne série en cliquant dessus.
J'avais pensé à ce mix de code html/php:


<a href="series.php/"<?php. $idSerie['img']?>




Etant novice, je ne vois pas si c'est la bonne formulation.

D'avance merci.
Profil introuvable

Profil introuvable Le 8 janvier 2019 à 01:08

Hello @Faratnight,

J'ai trouvé un topic similaire présent sur Grafikart est-ce que tu l'avait déjà vu auparavant ? Je pense qu'il peux t'apporter quelques pistes... 😉
Faratnight

Faratnight Le 8 janvier 2019 à 01:53

Hello Jerem,
merci, je vais lire ca de ce pas.
Je ne l'avais pas trouvé.
Faratnight

Faratnight Le 8 janvier 2019 à 02:29

Hello,
J'ai essayé ce que la personne avait faite et je viens d'essayer sans préparer de requêtes:
Je suis passé de:
$slideshow = $shows->prepare("SELECT * FROM shows WHERE idShows = ?");
$slideshow->execute(array($idSerie));

A

$slideshow = $shows->prepare("SELECT * FROM shows ");
$slideshow->execute(array($
Et au niveau du code dans la partie html, j'ai revu ma boucle:
<?php
        foreach ($slideshow as $numero)
            {
            echo "<img src='content/photos/series/" . $numero['img'] . "' alt=" . $numero['img'] . "'>";
            }
        ?>

J'ai un Undefined variable: idSerie à la ligne d'exécution ' 
$slideshow->execute(array($idSerie))

Est ce que j'aurai du déclarer ce idSerie avant?
Merci
Profil introuvable

Profil introuvable Le 9 janvier 2019 à 02:16

Re:

Est ce que j'aurai du déclarer ce idSerie avant?
Oui puisque c'est ce que le message d'erreur d'indique, les variables doivent être déclarées sinon elles servent à rien 😉
Surtout utilise PDO car mysql est devenu obsolète... Je te laisse analyser la documentation si tu ne l'a pas encore découvert 😉
Si tu reçois des messages d'erreur de ton code, fais une recherche rapide ce qui te permettra de comprendre tes erreurs 😉
Faratnight

Faratnight Le 16 janvier 2019 à 23:41

Merci Jerem971 😀 Oui j'utilise PDO.
Certains messages d'erreurs me surprennent car avant cela, ce message n'apparaissait pas. Encore une fois, c'est l'interface clavier chaise qui a déconné 😀
Profil introuvable

Profil introuvable Le 17 janvier 2019 à 01:14

Re:

Ah donc tu utilises PDO c'est bon parce que vu le nombre de topics obsolètes que j'ai vu sur le World Wide Web, c'est pour cela que je pose toujours la question si PDO est utilisé, dans ton cas c'est utilisé 🙂
Donc as-tu d'autres messages d'erreurs ? Bloque tu quelque part d'autres ?
Sinon, si ça fonctionne de ton côté, n'oublie pas de cliquer sur le bouton 😉
Balatharas

Balatharas Le 18 janvier 2019 à 22:27

Salut !
La j'ai ignoré le code que tu as poursuivi car faire un foreach me paraît un peu compliqué juste pour ça.
J'aurais plutôt utilisé while:
<?php
include_once("inc/database.inc.php");
$idSerie = random_int(1, 10); // Comme tu n'as pas défini ta variable j'ai mis un nombre aléatoire compris entre 1 et 10
$slideshow = $cooking->prepare("SELECT * FROM series WHERE idSerie = ?");
$slideshow->execute([$idSerie]);
?>

<!DOCTYPE html>
<html>
<head>
   <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
   <div class="slideshow-container">
      <div class="mySlides fade">
      <?php while($serie = $slideshow->fetch()) { ?>
         <img src='content/photos/series/<?= $serie['img'] ?>' alt="<?= $serie['img'] ?>'>";
      <?php } ?>
      </div>
   </div>
</body>
Essaie et dis moi si ce qui se passe. N'hésite pas aussi si tu ne comprends pas le code 😀
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte