Il n'affiche pas le premier enregistrement

[Résolu/Fermé]
Signaler
Messages postés
5
Date d'inscription
mardi 17 janvier 2012
Statut
Membre
Dernière intervention
19 janvier 2012
-
 Zaptoz -
Bonjour,

J'ai un site en php et une base de données relié au même. Mon probleme est qu'il n'affiche pas le premier enregistrement de la table à afficher.

J'explique mieux, j'ai un menu derroulant "modules" qui contient les page modules_ich.php et modules_mas.php. et cette page modules_ich.php permet l'affichage des 5 modules ich qui sont dans la table modules. Le problème est qu'il affiche que 4 donc pas le premier. je vous laisse le code. Merci beaucoup d'avance ;).

<?php
// le champ modules.download c'est pour distinguer les modules ich de mas.
$ReqSQL= "SELECT * FROM Modules WHERE modules.download='ich'";

//connexion a la BD
$Resultat= connexion($ReqSQL);

if (@mysql_fetch_array($Resultat))
{
echo "<table align='center' border='1'><tr>";
echo "<td>Nom du Module</td>";
echo "<td>Description</td>";
echo "<td></td></tr>";

while ($ligne = mysql_fetch_array($Resultat))
{
$id=$ligne['IDModule'];
echo "<tr><td>".$ligne['Nom_module']."</td>";
echo "<td>".$ligne['description']."</td>";
echo "<td><a href='page_user.php?conteneur=choix_module& qNom=".$ligne['Nom_module']."&qID=".$ligne['IDModule']."''>Download</a></td></tr>";
}
echo "</table>";
}
?>


2 réponses

Bonjour

C'est normal que la première ligne ne soit pas affichée.

Tu récupères une ligne de la réponse chaque fois que tu fais mysql_fetch_array($Resultat); c'est pour ça que tu fais ta boucle while ($ligne = mysql_fetch_array($Resultat)).

Mais avant, tu as déjà fait if (@mysql_fetch_array($Resultat)) : tu as donc déjà lu la première ligne avant de commencer ta boucle !

De plus, ce test est farfelu, je pense que tu voulais tester s'il y avait au moins une réponse. Il fallait faire :
if (mysql_num_rows($Resultat)>0) 


Et tu avais utilisé @ : ne t'en sers jamais pour cacher une erreur qui aurait pu être évitée, ici il n'y avait pas lieu de l'utiliser.
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

C'est vrai, une fois que vous implementez l'expression "mysql_fetch_array($Resultat)" avant d'antamer l'affichage proprement dite, il ya une ligne qui ne sera affiché

Merci
Merci j'avais le même problème et en remplaçant mon if par un if du même genre que le tien, ça fonctionne.
Mon code :

$req = $bdd->prepare('Ma requête SELECT");

if ($donnees = $req >0) { 
  while ($donnees = $req->fetch()) {
    echo ($donnees['commentaire']);
  }
}
else
echo('<h4 style="text-align: center;">Aucun Commentaires</h4>');	 
Messages postés
5
Date d'inscription
mardi 17 janvier 2012
Statut
Membre
Dernière intervention
19 janvier 2012

Bonjour le père,

Mais oui! je suis très con... c'est juste que il n'avait pas d'erreur mais réellement je lit la première ligne dans mon test -.-'. J'ai juste changé mon if par le votre et ça a marché de suite =).

Merci beaucoup le père pour la vitesse de réponse et pour la réponse