|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 7 ![]() |
Bonjour,
En utilisant le code qui suit j'obtiens un Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource... J'ai essayé beaucoup de solution mais là je suis vraiment bloqué, Est-ce que quelqu'un pourrait m'expliquer la cause de ce message ? Merci ! Code :
Dernière modification par sabotage ; 08/02/2010 à 00h48. Motif: Merci d'utiliser les balises [CODE] (bouton # de l'éditeur) |
||
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
mysql_db_query() ne s'utilise plus.
Il manque des guillemets a ton LIKE et faire un ORDER sur un COUNT unique ne sert a rien : Code :
mysql_query("select count(*) from recherches where produit like '%$phrase%'"); |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() David GuillotChef de projet en SSII Inscription : mars 2004 Messages : 879 ![]() |
Je suis d'accord sur la solution, mais j'ai quand même une question pour toi Sabotage : pourquoi la fonction qui exécute la requête ne renvoie pas un warning pour dire que la requête a foiré ?
__________________
Avant de poser une question ici : ![]() Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé |
|
00
|
|
|
#4 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
mysql_query() ne renvoit pas les erreurs, il faut utiliser mysql_error() pour les voir.
A mon avis, c'est pour eviter que des informations sur la base de données soient affichées ; bien qu'en production on n'affiche normalement jamais les erreurs. |
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 7 ![]() |
Merci Sabotage pour ta réponse,
J'ai fait les modifications mais maintenant en plus du message d'erreur précedent, j'ai un nouveau message d'erreur: Warning: mysql_result(): supplied argument is not a valid MySQL result resource ... ce qui correspond à la ligne: Citation:
$debut = ($page - 1) * $limit; pour la ligne: $debut =$page*$limit; en utilisant le code de mon premier message, je n'ai plus aucun message d'erreur mais alors ma pagination en bas des pages est décalée d'une page, ce qui ne règle rien. Par contre, ça ne change rien si j'utilises le code ci-dessous. Je vous remet le code en incluant les modifications de Sabotage: Code :
Merci! P.S.J'utilise Easyphp 3.0. Dernière modification par sabotage ; 08/02/2010 à 22h52. Motif: Merci d'utiliser les balises [CODE] (bouton # de l'éditeur) |
|||
|
|
00
|
|
|
#6 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Toutes les explications pour bien debuguer :
http://php.developpez.com/faq/?page=...ysql_ressource |
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 247 ![]() |
Salut,
j'ai pas bien compris, tu veux juste le nombre de lignes ? Si oui, mets : Code php :
à la place de : Code php :
non ? |
||||
|
|
00
|
|
|
#8 | |
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 7 ![]() |
Merci à Sabotage et Madfrix pour vos réponses,
Madfrix, j'ai essayé ta solution mais maintenant j'ai un Warning avec mysql_fetch_assoc. Mais je crois avoir cerné où est le probleme, grace au site de Sabotage, j'ai inscrit des or exit(mysql_error()) et j'ai le message suivant: Erreur de syntaxe près de '%%' or produit like '%%' ... ce qui correspond à la ligne suivante: Citation:
|
|
|
|
00
|
|
|
#9 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Dans la premiere condition ca doit être un LIKE pas = ; mais sinon $mot[0] est vide.
D'ailleurs d'ou vient ce $mot ? |
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 7 ![]() |
Bonjour Sabotage,
Ce script sert de moteur recherche. On peut utiliser plusieurs mots pour la recherche dans une table contenant plusieurs colonnes. On peut donc rechercher par no de produit, par nom, par description, par fabricant etc. C'est ainsi que dans le code: $phrase=" '%$mots[0]%' or produit like '%$mots[0]%' " il y a beaucoup d'autres or, je ne les ai pas donner pour ne pas alourdir le message. De toute façon, ça donne le même message d'erreur de syntaxe. Pour le $mot voici les lignes de code qui le concerne: Citation:
Merci de bien vouloir m'aider. |
|
|
|
00
|
|
|
#11 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Etant donné qu'il n'y a qu'un seul = dans le bout de requete que tu nous montres, tu devrais trouver
Tu devrais controler ce que vaut $mot et toutes les variables qui servent à le construire car visiblement il ne vaut rien. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com