PHP/SQL Problème affichage de données

Résolu/Fermé
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 3 déc. 2007 à 16:15
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 3 déc. 2007 à 16:55
Salut à tous !

Voila, j'ai un petit problème, et j'espère que vous pourrez corriger mon erreur.

J'ai créé un formulaire qui permet la gestion de stock. J'ai finit la partie "Saisie du matériel" mais j'ai un bug dans la partie "Affichage des données".

Je voudrais qu'une page Internet m'affiche la liste des composants déja enregistrés. J'ai tappé le code mais il ne me montre qu'une seule ligne, avec donc un seul résultat.

$requete="select nom,categorie,description,date_achat,quantite,marque from composant;";
$resultat=mysql_query($requete);
if(mysql_num_rows($resultat)){
echo("<table border=1><tr><td>Type</td><td>Nom</td><td>Marque< ;/td><td>Description</td><td>Date d'achat</td><td>Quantité</td></tr>");
while($resultat=mysql_fetch_assoc($resultat)){
$categorie=$resultat['categorie'];
$nom=$resultat['nom'];
$marque=$resultat['marque'];
$description=$resultat['description'];
$date_achat=$resultat['date_achat'];
$qu=$resultat['quantite'];
echo ("<tr><td>".$categorie."</td>
<td>".$nom."</td>
<td>".$marque."</td>
<td>".$description."</td>
<td>".$date_achat."</td>
<td><center>".$qu."</center></td></tr></table ></div>");
}
echo("</table>");
}

En plus il m'affiche une érreur : Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Pouvez me dire ce que je dois ajouter/supprimer/modifier pour qu'il m'affiche autant de ligne qu'il n'y a de composant ? Merci de votre aide

---

Administrateur réseaux sous Windows Server 2003 et 2008 Bêta et sous Linux Debian

3 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
3 déc. 2007 à 16:38
Attention !!
Ton erreur vient du fait que tu utilise le même nom de variable pour deux choses qui n'ont rien avoir entre elle :
$resultat=mysql_fetch_assoc($resultat))

Tu met ta ligne courante dans $resultat qui est en fait ton resultSet sur lequel tu es sencé roller.. donc ton prog passe bien une première fois dans ta boucle, et la variable $resultat devient donc un tableau au lieu d'un résultSet, donc le tour d'après ta condition n'est plus vérifiée et ton prog sort de la boucle. Au final tu n'as qu'une ligne d'affichée.

Remplace donc correctement tes variables en renommant ainsi :
while ( $ligne=mysql_fetch_assoc($resultat)) {
  $categorie=$ligne['categorie'];
   ...
 

0
Profil bloqué
3 déc. 2007 à 16:43
Bien vue Kij_82.L'oeil du programmeur.j'ai même pas remarqué.Jespére qu'il lui résoudra son compte!
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
3 déc. 2007 à 16:55
Ok, c'est tout bon, ca marche nickel. La fatigue certainement qui m'a fait utiliser deux fois la même variable. Erreur bête, je me sens nul de pas l'avoir trouvé avant ! Mais comme tu l'as dit Slum-dunk, il faut avoir l'œil du programmeur ! Merci encore
0