recherche php mysql

recherche php mysql - PHP - Programmation

Marsh Posté le 22-09-2005 à 17:58:02    

bonjour,
 
vous pouriez me dire ou est l'erreur dans ma requette mysql?
 
j'ai toujours le meme message d'erreur quand je veux faire cette requette là
 
 
 $recherche = $_REQUEST['rechercher'];
 $sql  = mysql_query( "SELECT DISTINCT titre FROM film
          WHERE  (titre LIKE  "%$recherche%"
                  OR resume LIKE "%$recherche%"
                 OR acteur LIKE "%$recherche%" ) " );
       
 
  while ($donnee = mysql_fetch_array($sql))
{
...
}
 
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource" sur la ligne du while pour l'argument $sql, enfin je pense.
 
mais pourquoi??
 
là je suis a court d'idée..  :heink:

Reply

Marsh Posté le 22-09-2005 à 17:58:02   

Reply

Marsh Posté le 22-09-2005 à 18:00:41    

Fait un
echo mysql_error();
juste aprèston mysql_query() ca devrait pouvoir t'aider.
Et met ta requête entre quotes simple et les variables ca se met comme ca:
'.$var.' on les met pas directe dans la chaine...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 22-09-2005 à 18:03:27    

Ta requête semble valide. T'es sur que tu ne t'es pas embrouillé avec les variables $sql et $? ?

Reply

Marsh Posté le 22-09-2005 à 18:13:04    

dwogsi a écrit :

Fait un
echo mysql_error();
juste aprèston mysql_query() ca devrait pouvoir t'aider.
Et met ta requête entre quotes simple et les variables ca se met comme ca:
'.$var.' on les met pas directe dans la chaine...


 
 
voila ce que me repond le echo mysql_error();
Query was empty
 
ca voudrait dire que mon select n'est pas bon... :o/
 
$sql  = mysql_query( "SELECT DISTINCT titre FROM film
          WHERE  (titre LIKE  "%'.$recherche'%"
                  OR resume LIKE "%'.$recherche'%"
                 OR acteur LIKE "%'.$recherche'%" ) " );
 
une idée?

Reply

Marsh Posté le 22-09-2005 à 18:14:27    

Des guillemets dans des guillemets, spa super. :o


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 22-09-2005 à 18:16:35    

Ah ouais ! d'où la requête vide...

Reply

Marsh Posté le 22-09-2005 à 18:16:56    

sielfried a écrit :

Des guillemets dans des guillemets, spa super. :o


 
 
juste %'.$recherche'%  et "%'.$recherche'%" ?

Reply

Marsh Posté le 22-09-2005 à 18:18:10    

plutot : \"


Message édité par kalex le 22-09-2005 à 18:18:29
Reply

Marsh Posté le 22-09-2005 à 18:20:33    

$sql  = mysql_query( "SELECT DISTINCT titre FROM film  
          WHERE  (titre LIKE  "%'.$recherche'%"  
                  OR resume LIKE "%'.$recherche'%"  
                 OR acteur LIKE "%'.$recherche'%" ) " );  
 
 
 
=>  
$sql  = mysql_query( 'SELECT DISTINCT titre FROM film  
          WHERE  (titre LIKE  "%'.$recherche.'%"  
                  OR resume LIKE "%'.$recherche.'%"  
                 OR acteur LIKE "%'.$recherche.'%" ) ');  
 
Soit on délimite avec des " soit avec des ' mais pas un coup avec l'un un coup avec l'autre. Et tant qu'a faire, on met le . de concaténation avant et aprés le nom de la variable et pas juste d'un seul côté. ;)

Reply

Marsh Posté le 22-09-2005 à 18:20:37    

Mais si tu utilises des ' :
'SELECT DISTINCT titre FROM film
          WHERE  (titre LIKE  "%'.$recherche.'%"
                  OR resume LIKE "%'.$recherche.'%"
                 OR acteur LIKE "%'.$recherche.'%" ) '
 
edit grilled


Message édité par kalex le 22-09-2005 à 18:21:11
Reply

Marsh Posté le 22-09-2005 à 18:20:37   

Reply

Marsh Posté le 22-09-2005 à 18:30:51    

toujours Query was empty
 
ca vient bien de là "%'.$recherche.'%"
 
que je mette "%'.$recherche.'%" ou "%$recherche%", je reste bloqué au meme endroit "Query was empty"
 
je suis certain que c'est tout bte en plus ^^
 
 
ps : desolé, je suis pas encore un pro. j'apprend tout seul

Reply

Marsh Posté le 22-09-2005 à 18:38:07    

hageshii > Elle a quelle tête ta requette maintenant?
Ca serait bien que tu mettes ta requette dans une variable avant de l'exécuter avec le mysql_query afin de pouvoir en faire un echo permettant de voir ce qui est envoyé exactement au serveur.
Au fait, t'as pensé à faire un addslash? Ton probléme vient peut être du contenu de $recherche.
Sinon, comme la proposer dwogsi, rajoute un "or echo mysql_error();" à la place du ; finissant le mysql_query. Ca te permettra de voir le message d'erreur si ca c'est mal exécuté.
 
kalex > grillé, mais vraiment de trés peu.

Reply

Marsh Posté le 22-09-2005 à 18:41:10    

:D
 
Et faire un petit tour sur http://fr2.php.net/manual/fr/language.types.string.php ne serait peut pas inutile pour hageshii . ;)

Reply

Marsh Posté le 22-09-2005 à 18:46:43    

bon, je vais regarder atentivement ce site et essayer d'arranger ca car ca m'enreve pas trouver.
 
en tout cas, merci a tous

Reply

Marsh Posté le 22-09-2005 à 18:50:21    

ca marche!! yahouuuuuuuuuuuuu
lol
 
pour info, voila ma requette
 
 $query  =  'SELECT DISTINCT titre FROM film  
          WHERE  (titre LIKE  "%'.$recherche.'%"  
                  OR resume LIKE "%'.$recherche.'%"  
                 OR acteurs LIKE "%'.$recherche.'%" )';
   
 
$sql = mysql_query($query);
echo mysql_error();  
 
  while ($donnee = mysql_fetch_array($sql))
{...}

Reply

Marsh Posté le 24-09-2005 à 00:31:19    

En gros t'a rien changé mais maintenant y'a des données dans la table film c'est ça ? :whistle:


Message édité par Ricco le 24-09-2005 à 00:31:55

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Sujets relatifs:

Leave a Replay

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