Salut !

Je suis en pleine guerre avec un while capricieux :

Voilà, je fais ma boucle while, mais le problème c'est que si la requête précédemment exécutée ne renvoi qu'un seul résultat, le while le l'affiche pas ! Par contre il affiche le deuxième (s'il y en a un)

Comme ce while est utilisé sur une page de commentaires de news, évidemment ce n'est pas pratique car le 1er commentaire n'ai jamais afficher, même s'il y en a un deuxième.

Code :

while($data2 = $req2->fetch()) {
    echo " <h3>{$data2"pseudo"]}</h3>
            <p>Posté le ".date("d/m/Y - G:i",strtotime($data2"date"]))."</p>
            <br/>"
            <p>{$data2"comm"]}</p>
            <br/>";
    }

5 réponses


Lakh92
Réponse acceptée

Dans ce cas là, essaye de faire :

do{
    echo " <h3>{$data2"pseudo"]}</h3>
            <p>Posté le ".date("d/m/Y - G:i",strtotime($data2"date"]))."</p>
            <br/>
            <p>{$data2"comm"]}</p>
            <br/>";
} while($data2 = $req2->fetch());

La boucle s'exécutera au moins une fois, bonne chance :)

while($data2 = $req2->fetch(PDO::FETCH_ASSOC)) {
    echo " <h3>{$data2"pseudo"]}</h3>
            <p>Posté le ".date("d/m/Y - G:i",strtotime($data2"date"]))."</p>
            <br/>"
            <p>{$data2"comm"]}</p>
            <br/>";
}

P'têt ça, si tu n'as pas vu, j'ai précisé PDO::FETCH_ASSOC en argument de ton fetch (:
A moins que tu ais crée ton propre objet pour MySQL :o

Oui j'ai remarqué, mais ça ne change rien :/

Hello, t'as peut-être un problème à ta requête SQL ?

Merci !! Avec un do, ca fonctionne !!