Problème avec fonction de recherche [PHP] - PHP - Programmation
Marsh Posté le 17-10-2002 à 15:10:07
Bin teste si ta variable $tmp2 n'est pas null, déjà. Pis fais aussi un truc genre mysql_error($tmp2), parce que bon, le Warning PHP signifie clairement que ta requête a foiré.
Puis un conseil aussi : quand tu inclues ta variable $word, vérifie qu'elle ne contient pas de ' ou de % ou je ne sais quel autre caractère réservé de MySQL, sinon ça va te faire bizarre
Ah et puis aussi, dans ce genre de cas, un gros debug s'impose : affiche toutes les traces que tu peux, fais des echo $tmp pour voir si ta query est correcte, des trucs comme ça. Ca aide
Et pis mysql_fetch_array() roulèze ; lu dans la doc PHP de Nexen.net : "Il est important de souligner que mysql_fetch_array() N'est PAS plus lente que mysql_fetch_row(), tandis qu'elle ajoute un confort d'utilisation notable."
Ouala.
Marsh Posté le 17-10-2002 à 15:25:18
Taiche a écrit a écrit : Bin teste si ta variable $tmp2 n'est pas null, déjà. Pis fais aussi un truc genre mysql_error($tmp2), parce que bon, le Warning PHP signifie clairement que ta requête a foiré. Puis un conseil aussi : quand tu inclues ta variable $word, vérifie qu'elle ne contient pas de ' ou de % ou je ne sais quel autre caractère réservé de MySQL, sinon ça va te faire bizarre Ah et puis aussi, dans ce genre de cas, un gros debug s'impose : affiche toutes les traces que tu peux, fais des echo $tmp pour voir si ta query est correcte, des trucs comme ça. Ca aide Et pis mysql_fetch_array() roulèze ; lu dans la doc PHP de Nexen.net : "Il est important de souligner que mysql_fetch_array() N'est PAS plus lente que mysql_fetch_row(), tandis qu'elle ajoute un confort d'utilisation notable." Ouala. |
Merci pour ta réponse, $tmp2 et bien vide, mais pourquoi?
Marsh Posté le 17-10-2002 à 15:28:08
Citation : Merci pour ta réponse, $tmp2 et bien vide, mais pourquoi? |
Bin dans ce cas, c'est que ta requête a planté. Un echo "erreur MySQL : ".mysql_error() devrait t'aider à débugger.
Marsh Posté le 17-10-2002 à 15:34:28
Taiche a écrit a écrit :
|
Il y a l'erreur suivant erreur MySQL : Query was empty
Marsh Posté le 17-10-2002 à 15:37:27
Si je fait :
Print $sql;
ça me sort ça
SELECT * FROM topics_re where (re_text LIKE '%php%' ORDER BY topic_id
qui est valable.
D'où viens l'erreur alors?
Merci pour tes reponses rapides
Marsh Posté le 17-10-2002 à 15:39:11
Ah ba ui, c'est normal, chu con, j'avais pas bien tout lu. La fin de ton code merde total :
* tu fais DEJA un $mysql_query() dans ta fonction de search, donc pas la peine d'en faire un après avec mysql_query($tmp) ;
* toujours dans search(), tu fais $result = mysql_query($sql); alors que tu retournes $results Comme tu renvoies une variable vide, normal que la query SQL soit vide
Marsh Posté le 17-10-2002 à 15:47:21
Taiche a écrit a écrit : Ah ba ui, c'est normal, chu con, j'avais pas bien tout lu. La fin de ton code merde total : * tu fais DEJA un $mysql_query() dans ta fonction de search, donc pas la peine d'en faire un après avec mysql_query($tmp) ; * toujours dans search(), tu fais $result = mysql_query($sql); alors que tu retournes $results Comme tu renvoies une variable vide, normal que la query SQL soit vide |
pour le $results j'avais déja vu l'erreur. Mais je dois changer quoi dans search (si j'ai deux fois $mysql_query())
Merci
Marsh Posté le 17-10-2002 à 15:48:38
Aloooors si j'étais toi, j'ferai juste un return $sql pis j'ferais la query dans le code principal. Genre mysql_query(search($keywords)) quoi.
Marsh Posté le 17-10-2002 à 15:00:34
Un copain a fait cette fonction en PHP (que j'ai modifier)
cherche mot dans table topics_re dans le champs re_text
Pour appeller la fonction je fais:
Mais il y a toujours un message d'erreur (Warning: Supplied argument is not a valid MySQL result resource in search.php on line 53) pour cette ligne
Quelqu'un voit où est l'erreur car on trouve pas.
Si quelqu'un à une fonction de recherche qui va bien, je serais heureux de l'utiliser.
Merci