Aller au contenu

syntaxe requete sql dans php


Sujets conseillés

Posté

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 serveur
mysql_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 resultats
if (!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 donnees
mysql_close();

?>

dernier stuut,

avec la requete select * il m'affiche à partir du deuxieme enregistrement... :shutup:

help me please...

dites moi tout ....

Posté

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..

Posté

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)

Posté

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 :)

Posté
(ca te supprime une ligne)

qu'elle idée ! :mad2:

merci en tout cas, ça à l'air de marcher...

j'avais l'impression de regresser !

Posté

De rien ;-)

Tous les mysql_fetch_* supprime la ligne du résultat ;-)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...