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
    Membre du Club
    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é
    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
    Invité
    Invité(e)
    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>

  4. #4
    Membre du Club
    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

###raw>template_hook.ano_emploi###