Luckyluk Posté 10 Octobre 2006 Posté 10 Octobre 2006 Bonjour, je me casse la tete depuis un moment, quand j'effectue une rquete du type $query = 'SELECT * FROM pro'; pas de prob, il m'affiche les données... par contre , des que je mets un $query = 'SELECT * FROM pro WHERE (identifiant=2)'; il ne me trouve rien... meme pas d'erreur... pire encore, si je mets $query = 'SELECT * FROM pro WHERE (identifiant>=2)'; ça fonctionne bien... voici ci-dessous le bout de code pour m'entrainer... <?php// Connexion au serveurmysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");// Creation et envoi de la requete/*$query = "SELECT nom,prenom,categorie FROM pro WHERE (identifiant = 2)";*/$query = 'SELECT * FROM pro'; $result = mysql_query($query);// Recuperation des resultatsif (!mysql_fetch_row($result)) {echo "Aucun enregitrement ne correspond\n";}else { while($row = mysql_fetch_row($result)){ $nom = $row[0]; $prenom = $row[1]; $categorie = $row[2]; echo"<table>"; echo "<tr><td> le nom est : $nom</td>"; echo "<td> le prenom est : $prenom</td>"; echo "<td>la categorie est : $categorie</td></tr>"; echo"</table>"; }}// Deconnexion de la base de donneesmysql_close();?> dernier stuut, avec la requete select * il m'affiche à partir du deuxieme enregistrement... help me please... dites moi tout ....
Luckyluk Posté 10 Octobre 2006 Auteur Posté 10 Octobre 2006 j'avoue ne pas trop comprendre, car quand j'effectue la requete directement dans le phpmyadmin sur le serveur distant, tout se passe normalement. on dirait que c'est dans la syntaxe php.... ou dans le traitement des données..
Jeromnimo Posté 10 Octobre 2006 Posté 10 Octobre 2006 je pense que tu perds ton résultats à cause du test en faisant un mysql_fetch_row (ca te supprime une ligne) Donc dans le cas ou tu mets un seul identifiant (genre =2), la ligen ets perdu, et il n'y a pas d'autres résultats Dans le cas ou tu fais un >=2 il commence a t'afficher au premier identifiant au dessus de 2 (3 si il existe) Enfin, avec le *, il zappe le premier identifiant... Change ton if (!mysql_fetch_row($result)) en if (mysql_num_rows($result) == 0)
Portekoi Posté 10 Octobre 2006 Posté 10 Octobre 2006 Bonjour, Je ne vois rien qui puisse faire commencer le jeux de résultats à 2. Es tu sûr du code que tu as mis ci-dessus? "SELECT * FROM pro", y a rien d'autre après? Portekoi EDIT : Bien vu Jeromnimo, ca doit être ca
Luckyluk Posté 10 Octobre 2006 Auteur Posté 10 Octobre 2006 (ca te supprime une ligne) qu'elle idée ! merci en tout cas, ça à l'air de marcher... j'avais l'impression de regresser !
Jeromnimo Posté 10 Octobre 2006 Posté 10 Octobre 2006 De rien ;-) Tous les mysql_fetch_* supprime la ligne du résultat ;-)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant