Bonjour, je viens postuler suite a ce sujet car je travail actuellement sur un système de commentaire pour mon site internet, le but est qu'un client puisse venir donné son avis depuis un formulaire afin de les récupérés sur ma page d’accueil dans une div avec à l’intérieur un système de slider qui fonctionne par lots de 2 commentaire (sous forme de bulles) par exemple : "2 bulles-> changement de page -> 2 autres bulles -> puis 2 autres.."

Vous me suivez ? ^^

Jusque la rien je suis arrivé a mon but et les commentaire s'affiche bien dans mes bulles mais le probleme c'est que depuis que j'ai fait ma boucle "for" les bulles s'affiche une par une exemple : "1 bulle-> changement de page -> 1 autres bulle -> puis 1 autres.."

Malgré plusieurs heures à chercher je ne sais plus quoi faire pour parvenir a faire revenir mes commentaires par lots de deux bulles comme avant..

Voici mon code :

<?php
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=mabase;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}

// On récupère le tout
$req = $bdd->query('SELECT id, auteur, commentaire, note FROM livredor ORDER BY note DESC LIMIT 0, 5');

?>

    <section class="testimonials_area section-padding">
        <div class="container">

            <div class="row">
                <div class="col-xs-12 col-sm-10 col-text-center">
                    <div class="section-title text-center">
                        <h2 class="white-color">TÉMOIGNAGES</h2>
                        <hr class="white-bg t_underline"/>
                        <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
                    </div>
                </div>
            </div>

            <div class="row">
                <div id="testimonials_slider" class="owl-carousel owl-theme">
<?php
$Compteur = 0;
for ($donnees = $req->fetch(); $Compteur <= 2; $Compteur++)
{
?>

                    <div class="item">
                        <div class="col-xs-12 col-sm-6">
                            <div class="single_testi">
                                <div class="testi_text">
                                    <img src="images/testimonial/client1.png" alt="" />
                                    <p><?php echo $donnees['commentaire'] ?></p>
                                </div>
                                <div class="testi_title">
                                    <h5><?php echo $donnees['auteur'] ?></h5>
                                </div>
                            </div>
                        </div>
                    <?php if ($Compteur = 2) { echo '</div>'; } ?>
<?php
} // Fin de la boucle
?>

            </div>
        </div>
    </section>

Pour info je suis sur un thème de bootstrap et le php est unpeu nouveau pour moi.

Merci à vous

7 réponses


salut dans ta requete de récupération ($req) as tu essayer d'enlever la limite fixer... pour voir ce que cela donne??

j'ai rien compris !! tu veut faire une pagination en somme ?

Merci pour vos retours, Lionel Bah un seul commentaire saffiche
neecride : en gros j'ai a la base un theme bootstrap avec un slider ou des bulles de commentaire defile par deux, apres avoir integré le php (la boucle surtout) cela m'afiche une seul bulle a la fois.

Apres quelque modification j'ai reussi a avoir deux bulles de nouveaux mais le slider ne fonctionne plus et dans chaque bulle j'ai le meme commentairevdu meme auteur

<?php
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=mabase;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}

// On récupère le tout
$req = $bdd->query('SELECT id, auteur, commentaire, note FROM livredor ORDER BY note DESC LIMIT 0, 5');

?>

    <section class="testimonials_area section-padding">
        <div class="container">

            <div class="row">
                <div class="col-xs-12 col-sm-10 col-text-center">
                    <div class="section-title text-center">
                        <h2 class="white-color">TÉMOIGNAGES</h2>
                        <hr class="white-bg t_underline"/>
                        <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
                    </div>
                </div>
            </div>

            <div class="row">
                <div id="testimonials_slider" class="owl-carousel owl-theme">
                    <div class="item">
<?php
$Compteur = 0;
for ($donnees = $req->fetch(); $Compteur <= 1;)
{
?>

                        <div class="col-xs-12 col-sm-6">
                            <div class="single_testi">
                                <div class="testi_text">
                                    <img src="images/testimonial/client1.png" alt="" />
                                    <p><?php echo $donnees['commentaire'] ?></p>
                                </div>
                                <div class="testi_title">
                                    <h5><?php echo $donnees['auteur'] ?></h5>
                                </div>
                            </div>
                        </div>
     <?php $Compteur++ ?>

<?php
} // Fin de la boucle
?>

                </div>
            </div>
        </div>
    </section>

as tu essayer ton script sans la limit dans ta requete

Babio : Oui seul la note la plus basse apparait

Si je reprends la syntaxe de la boucle for, ilne passera qu'une fois dedans puisqu'à la fin du premier passage, le compteur vaudra 1 et s'arrêtera.

1/ Pourquoi retourner 5 éléments pour en afficher seulement 2 ?
2/ Pourquoi ne pas faire un fetchAll() et ensuite afficher les éléments désirées ?

Carouge10 : Je voudrais en afficher 6 par tranche de deux mais cela m'inporte peux pour le moment car j'ai fite fait d'ecrire 6 au lieu de 5, j'ai demander 2 pour tester un affichage des bulles deux par deux mais sans succes je ne suis pas tres bon en php je débute.

Pour ta deuxieme question honetement j'ai du mal a voir ou tu veux en venir precisément ?