Probleme de requet SQL php

Probleme de requet SQL php - PHP - Programmation

Marsh Posté le 27-02-2005 à 19:27:15    

J'ai un petit souci avec ma requet sql que voici
 
 $sql = "select * from application where appli_nom like '%$tab[0]%' or appli_desc like '%$tab[0]%' and appli_os=$OS";
 
et quand je fais un $result = mysql_query($sql);
il me met une erreur
 
quelqu'un peut il m'aider ??
merci pour l'aide

Reply

Marsh Posté le 27-02-2005 à 19:27:15   

Reply

Marsh Posté le 27-02-2005 à 19:30:19    

Oui, probablement.
 
Par contre 'il me met une erreur' c'est très bien. Mais ce serait super si tu faisais pareil :D
 
Bref, donne nous le message d'erreur, et un echo de $sql tant que tu y es :)

Reply

Marsh Posté le 27-02-2005 à 19:43:02    

En fait, c quand je fais mon :
if (mysql_num_rows($result) == 0)  
 
il me met :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result

Reply

Marsh Posté le 27-02-2005 à 19:44:28    

Oui, c'est bien ce que je disais, on a bien besoin d'un echo de $sql :D

Reply

Marsh Posté le 27-02-2005 à 19:50:16    

lol ok
 
j'ai pri comme exemple OS = windows et pour le mot cle DVD
 
select * from application where appli_os=Windows and appli_nom like %dvd% or appli_desc like %dvd%

Reply

Marsh Posté le 27-02-2005 à 19:54:37    

et ils sont passé ou les ' ?


Message édité par KangOl le 27-02-2005 à 19:54:47

---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 27-02-2005 à 19:56:24    

KangOl a écrit :

et ils sont passé ou les ' ?


pitete un trou noir, ça arrive souvent en informatique de nos jours...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 27-02-2005 à 19:56:37    

Sont passés où les ' autour des chaines Windows et %dvd% ? Oubli en recopiant ?

Reply

Marsh Posté le 27-02-2005 à 19:57:41    

je sais pas, comment peut on les proteger, pour ne plus qu'ils disparaissent ??

Reply

Marsh Posté le 27-02-2005 à 19:59:02    

ben déjà d'après le code de ta requete, autour de la valeur de appli_os tu n'en met pas, donc ils ont pas eu bcp de boulot pour disparaitre...


Message édité par Xav_ le 27-02-2005 à 19:59:18

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 27-02-2005 à 19:59:02   

Reply

Marsh Posté le 27-02-2005 à 20:01:37    

Ouais, enfin, c'est pas la même, son code et l'echo, c'est le tiercé dans le désordre aussi :)

Reply

Marsh Posté le 27-02-2005 à 20:01:52    

jj59 a écrit :


 $sql = "select * from application where appli_nom like '%$tab[0]%' or appli_desc like '%$tab[0]%' and appli_os=$OS";
echo $sql;
 
select * from application where appli_os=Windows and appli_nom like %dvd% or appli_desc like %dvd%


 
c'est la premiere fois que je vois php melanger une requete...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 27-02-2005 à 20:05:34    

non lol j'ai modifié entre temps pour que se soit plus clair
 
par contre lorsque je met des ' autour de $OS et %$tab[0]% sa ne les remplacent pas lors de l'execution de la requet

Reply

Marsh Posté le 27-02-2005 à 20:19:24    

Pour information, si  

PHP a écrit :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result



 
cela veut que l'argument que tu as passe a mysql_num_rows n'est pas ce qu'il attends. Donc il faut "remonter".
Le probleme vient de ton "mysql_query".
Donc tu peux faire quelque chose comme ca :

Code :
  1. $result = mysql_query($tarequete);
  2. if (!$result) {
  3.    die('Invalid query: ' . mysql_error());
  4. }


 
Le resultat de mysql_error() peut etre interessant et peut donner plus de details sur la source du probleme.


Message édité par cerel le 27-02-2005 à 20:19:38
Reply

Marsh Posté le 27-02-2005 à 20:28:03    

la requete correct est :
 

Code :
  1. $sql = "select * from application where appli_nom like '%".$tab[0]."%' or appli_desc like '%".$tab[0]."%' and appli_os='".$OS."'";


Message édité par Djebel1 le 27-02-2005 à 20:56:56
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed