WHERE + mysql_num_rows

Résolu
GuinaweK Messages postés 22 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 janvier 2007 - 17 févr. 2005 à 16:14
GuinaweK Messages postés 22 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 janvier 2007 - 19 févr. 2005 à 19:02
Quelqu'un saurait me dire si c'est possible d'arriver à lier une clause WHERE dans la requete SQL avec la commande mysql_num_rows ?
Je me sers d'un même fichier php auquel je passe un paramètre lors de la sélection du dossier cible pour aller chercher dans ma base de données des noms d'images et les afficher. Mais dans ma base de données, je différencie les dossiers auxquels sont rattachées les images par un champ category, et je voudrais compter combien de lignes ma requete me renvoie.

Je sais pas si c'est très clair, ci dessus la requete qui pose probleme :

$res = mysql_query("SELECT * FROM table WHERE category='$dir'");
$nb_enreg = mysql_num_rows($res);

please help :)

11 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
18 févr. 2005 à 10:08
haaa ! oui ça m'inspire..

et c toi que ça devrait inspiré aussi ;)

ta requete n'est donc pas bonne.



peux tu nous donner le résultat de :

echo "query="."SELECT * FROM table WHERE category='$dir'";






-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
3
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
17 févr. 2005 à 16:54
salut!

oui , ça fonctionne.

tu dis que ça pose probleme.. ok, mais quel probleme? quel est ton mesage d'erreur ?

rajoute des "or die (mysql_error());" pour sortir ton erreur...

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
GuinaweK Messages postés 22 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 janvier 2007
17 févr. 2005 à 17:23
pour le problème entre WHERE et mysql_num_rows, apparement, il fallait juste inclure un GROUP BY dans la requète, mais ça me laisse une erreur...

voilà l'erreur qu'il me sort :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\blog\misc\disp_pictures.php on line 23

entre temps, la requete SQL est donc devenue :
$res = mysql_query("SELECT * FROM table WHERE category='$dir' GROUP BY date");
$nb_enreg = mysql_num_rows($res);
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
17 févr. 2005 à 17:46
et ça marche maintenant?

as tu rajouté un " or die ...." sur ta query ???
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
GuinaweK Messages postés 22 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 janvier 2007
17 févr. 2005 à 17:55
non, ça marche pas, il continue à m'afficher cette erreur ci :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\blog\misc\disp_pictures.php on line
23

et la ligne 23 concernée, c'est la deuxième de ce bloc ci :

$res = mysql_query("SELECT * FROM table WHERE category='$dir' GROUP BY date");
$nb_enreg = mysql_num_rows($res);
0
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
17 févr. 2005 à 19:03
salut,

ta requete n'est pas bonne, mauvaise concaténation

remplace cette ligne :

$res = mysql_query("SELECT * FROM table WHERE category='$dir' GROUP BY date");

par celle ci :

$res = mysql_query("SELECT * FROM table WHERE category='".$dir."' GROUP BY date");



maintenant ca doit etre bon je pense

@+


Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
17 févr. 2005 à 22:19
Salut,



tucsoufle > ça revient au même de concaténer comme il l'a fait, et ça marche même très bien



Pour ce qui est de ce problème, perso le mysql_num_rows n'a pas
d'erreur, donc vérifie bien que ta requête renvoit un résultat et que
tu n'as pas fait une erreur de nom de champ.



a ++


Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'ent
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
18 févr. 2005 à 08:30
hum...au risque d'insister...

pour la 3ieme fois, as tu rajouté un "or die (mysql_error())" à la suite de ta query ?????

je sais bien que l'erreur a lieu lors du mysql_rows, mais je suis sur
que ta query est mauvaise !! (genre caractere speciaux dans $dir..)

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
GuinaweK Messages postés 22 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 janvier 2007
18 févr. 2005 à 10:04
erf, dsl, je croyais que ce que j'avais collé plus haut ça décrivait l'erreur... :(

maintenant, il me sort ça :
Erreur de syntaxe près de 'table WHERE category='misc' GROUP BY date' à la ligne 1

j'éspère que ça va pouvoir plus t'inspirer :)
0
GuinaweK Messages postés 22 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 janvier 2007
18 févr. 2005 à 11:17
tu veux que je colle ce bout de code dans mon prog ?
quand je colle ça, il me met query=SELECT * FROM table....

quand j'édites ma requête pour essayer d'avoir le résultat de la requete SELECT * FROM table WHERE category='$dir' il me met :
query=

ça voudrait dire que j'ai pas de résultats à ma requete ?
0
GuinaweK Messages postés 22 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 janvier 2007
19 févr. 2005 à 19:02
merci bcp pour ton aide davwart, c'est moi qui ai fait une boulette au niveau de ma requete SQL, en effet, le nom de ma table était pas bon, ça ne pouvait pas coller :(

encore désolé...
0
Rejoignez-nous