Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Mise en place d'un carousel dynamique Bootstrap


Sujet :

WordPress PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    mars 2019
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mars 2019
    Messages : 78
    Points : 33
    Points
    33
    Par défaut Mise en place d'un carousel dynamique Bootstrap
    Bonjour à vous,
    sur mon site hébergé sur Wordpress, j'aimerais intégré un carousel Bootstrap qui irait chercher des images dont les liens sont dans ma base SQL.
    Etant plutôt débutant en php, j'ai adapté un code trouvé sur : https://blog.smartcodehub.com/dynami...rousel-in-php/ (mais le liens n'a pas l'air fonctionner aujourd'hui )

    Du coup, ça donne ça chez moi :
    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
    	<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
      <div class="carousel-inner">
     <?php
     
    //récupération des images
    //Connexion et requête SQL
    $connexion2=include 'dunum_connexion_db.php';
    $img= $connexion2->prepare ("SELECT * FROM image WHERE id_site='$ID'");
    $img->execute();	
     
     while($data2=$img->fetch(PDO::FETCH_ASSOC)){
     $data2 = array_map($hsc, $data2); // échappement de toutes les valeurs
    //adaptation du premier résultat pour l'item active	 
        for ($i = 0; $i < count($data2); $i++) {
         if ($i == 0) {$addActive = "active";
          } else {
                  $addActive = "";
                 }
    //codage du carousel							
         echo '<div class="carousel-item ' . $addActive . '">
          <img  class="image-carousel" src="' . $data2[$i]['img_lien'] . '" alt="">
           <div class="carousel-caption">
           <p>'.$data2[$i]['img_legende'].'</p>
            </div>
           </div>';
        }
    	}
    ?>	
    </div>
    </div>
    Sachant que la connexion se fait suivant le code :
    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
     
    if ( ! function_exists('db_connexion')) {
       function db_connexion() {
          // une fois ouverte, on renvoie toujours la même connexion
          static $pdo;
          // on vérifie si la connexion n'a pas déjà été initialisée
          if ( ! ($pdo instanceof PDO)) {
             // tentative d'ouverture de la connexion MySQL
    	$serveur = "localhost";
    	$dbname = "xx_local";
    	$login = "root";
    	$pass = "";
             try {
            $pdo = new PDO("mysql:host=$serveur;dbname=$dbname", $login,$pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
    		$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
     
    		}
    	catch(PDOException $e){
    		echo 'Echec : ' .$e->getMessage();
    	}
          }
          // renvoi de la ressource : connexion à la base de données
          return $pdo;
       }
    }
    return db_connexion();
    Il y a l'air d'y avoir un problème dans mon code car si j'affiche le "count($data2)", ça me met 999 alors qu'il devrait y avoir que deux enregistrements (qui ressortent très bien si je print_r $data2) et le caroussel ne me sort que des diapositives vides.
    Est-ce que, par hasard, quelqu'un aurait la bonté d'âme de regarder mon code pour voir si qqchose cloche ?

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile Fullstack
    Inscrit en
    avril 2013
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile Fullstack
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2013
    Messages : 292
    Points : 462
    Points
    462
    Par défaut
    Bonjour,

    D'où vient la variable $hsc ?
    Et peux tu indiquer ou as tu fais l'echo de count($data2) et le print_r($data2) ainsi que le résultat de ce print_r

  3. #3
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 815
    Points : 32 346
    Points
    32 346
    Par défaut
    Bonjour,

    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
    	<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
      <div class="carousel-inner">
     <?php
     
    //récupération des images
    //Connexion et requête SQL
    $connexion2=include 'dunum_connexion_db.php';
    $img= $connexion2->prepare ("SELECT * FROM image WHERE id_site=:id");
    $img->execute(array( ':id'=>$ID));	
    $i = 0;
    while($data2=$img->fetch(PDO::FETCH_ASSOC))
    {
        $data2 = array_map($hsc, $data2); // échappement de toutes les valeurs
        //adaptation du premier résultat pour l'item active	 
         $addActive = ($i == 0)? "active" : "";
         $i++;
        //codage du carousel							
         echo '<div class="carousel-item ' . $addActive . '">
          <img  class="image-carousel" src="' . $data2['img_lien'] . '" alt="" />
           <div class="carousel-caption">
           <p>'.$data2['img_legende'].'</p>
            </div>
           </div>';
    }
    ?>	
    </div>
    </div>
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Archéologue
    Inscrit en
    mars 2019
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mars 2019
    Messages : 78
    Points : 33
    Points
    33
    Par défaut
    Bonjour,
    Pour info Rpass
    D'où vient la variable $hsc ?
    c'était une variable définie un peu plus haut que j'avais oublié de mettre avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $hsc = function($p) { return htmlspecialchars($p, ENT_QUOTES, 'utf-8'); }; // échappement des caractères dangereux
    Mais pour le coup, merci beaucoup jreaux62 pour ta rapidité et ton efficacité à toute épreuve, tes corrections fonctionnent à merveille...

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Framework] problème de mise en place d'un logger
    Par BerBiX dans le forum Spring
    Réponses: 3
    Dernier message: 29/03/2010, 16h18
  2. Problème de mise en place JavaBeans
    Par popy67 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 28/08/2009, 19h48
  3. Problème de mise en place channel bonding
    Par juanito7 dans le forum Réseau
    Réponses: 9
    Dernier message: 11/06/2007, 15h04
  4. Problème de mise en place de datasource pour Hibernate
    Par K-Kaï dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 27/07/2006, 11h41
  5. Problème de mise en place de la log4j
    Par pitit777 dans le forum Logging
    Réponses: 2
    Dernier message: 28/03/2006, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo