[PDO] Mon premier enregistrement est "sauté"

Résolu/Fermé
Pinguguss Messages postés 50 Date d'inscription samedi 16 mai 2015 Statut Membre Dernière intervention 3 juillet 2023 - Modifié par jordane45 le 11/01/2016 à 16:24
Pinguguss Messages postés 50 Date d'inscription samedi 16 mai 2015 Statut Membre Dernière intervention 3 juillet 2023 - 12 janv. 2016 à 09:03
Bonjour,

Je me permets de poster ici sur un problème vraiment bizarre auquel j'ai affaire :
Je code en PHP (+ PDO) un tableau affichant les dix derniers éditos mis en ligne.



Ceci est la table edito. En temps normal, PDO devrait afficher les enregistrements de "C'est quoi ce binz ???" à "Cadavre exquis 11".
Or, j'obtiens ceci:


L'édito avec l'id 18 ("C'est quoi ce binz ???") a été tout simplement zappé, pour une raison inconnue. Ni erreur ni warning.

Mon code SQL est le suivant:
SELECT * 
FROM brisset.edito 
ORDER BY date DESC 
LIMIT 0,10

Il est sensé afficher les 10 éditos les plus récents, comme sur la seconde image.
Mais PHP a zappé le premier enregistrement, ce qui explique le fait qu'il n'y en ait que 9.

Que se passe-t-il ?

Cordialement,
Pinguguss, le Pingouin Manchot de l'Antarctique !



EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

3 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié par jordane45 le 11/01/2016 à 17:06
Peux tu essayer ceci :
$gestionEdito = "SELECT * FROM brisset.edito ORDER BY date DESC LIMIT 0,10";
// Pour afficher les éditos 10 par 10

try{
  $rqGestionEdito = $dbh->query($gestionEdito);
  $result = $rqGestionEdito->fetchAll();
 }
  catch(Exception $e) {
   echo "Error <br>".$e->getMessage()."<br>";
}
 
echo "<table id='gestionedito'>";
echo "<theader>Editos actuellement disponibles (du plus récent au plus ancien)</theader>";
echo "<thead>
      <tr>";
echo " <th>Id</th>
       <th>Titre</th>
    <th>Date</th>
    <th>Gestion</th>";
echo "</tr>
      </thead>";
echo "<tbody>";
foreach ($result  as $row){
 echo "<tr>";
   echo "<td>".$row["id"]."</td>";
   echo "<td>".$row["titre"]."</td>";
   echo "<td>".$row["date"]."</td>";
    echo "<td>
         <p><a href=editogerer.php?id=$row[id]>Modifier l'édito</a></p>
          <p><a href=editoeffacer.php?id=$row[id]>Effacer l'édito</a></p>
      </td>";
 echo "</tr>";
}
echo "</tbody>";
echo "</table>";






Cordialement, 
Jordane                                                                 
1
Pinguguss Messages postés 50 Date d'inscription samedi 16 mai 2015 Statut Membre Dernière intervention 3 juillet 2023 1
12 janv. 2016 à 09:03
Nickel ! Merci ça fonctionne ! Pour info, quel était le problème ?
0
Pinguguss Messages postés 50 Date d'inscription samedi 16 mai 2015 Statut Membre Dernière intervention 3 juillet 2023 1
11 janv. 2016 à 16:55
La requête telle quelle fonctionne sans problème dans MySQL.

Mon code PHP: ($dbh existe, il sert à la connexion au PDO, et fonctionne sans problème)
$gestionEdito = "SELECT * FROM brisset.edito ORDER BY date DESC LIMIT 0,10";
// Pour afficher les éditos 10 par 10

$rqGestionEdito = $dbh->query($gestionEdito);
$rqGestionEdito->fetch(PDO::FETCH_ASSOC);
echo "<table id='gestionedito'>";
echo "<theader>Editos actuellement disponibles (du plus récent au plus ancien)</theader>";
echo "<th>Id</th><th>Titre</th><th>Date</th><th>Gestion</th>";
foreach ($rqGestionEdito as $row) {
	echo "<tr>";
	echo "<td>".$row["id"]."</td>";
	echo "<td>".$row["titre"]."</td>";
	echo "<td>".$row["date"]."</td>";
	echo "<td>";
	echo "<p><a href=editogerer.php?id=$row[id]>Modifier l'édito</a></p>";
	echo "<p><a href=editoeffacer.php?id=$row[id]>Effacer l'édito</a></p>";
	echo "</td>";
	echo "</tr>";
}
echo "</table>";


J'avais pourtant défini SQL comme langage en postant le morceau de code, mais on m'avait proposé le mot-clé SQL en-dessous. C'est en le mettant que ça a fait sauter le morceau de code.
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
11 janv. 2016 à 16:24
Bonjour,


Si tu testes la requête DIRECTEMENT dans ta BDD ... qu'obtiens tu ?
La même chose... ou bien la ligne apparait correctement ?

Si elle apparait correctement dans ton test (directement dans la BDD donc... ) le souci se trouve peut être au niveau de ton code PHP ...
Quel est-il ?


PS: Merci d'indiquer le LANGAGE dans les balises de code

-1