recherche php mysql - PHP - Programmation
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...
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 $? ?
Marsh Posté le 22-09-2005 à 18:13:04
| dwogsi a écrit : Fait un  | 
 
 
 
voila ce que me repond le echo mysql_error(); 
Query was empty 
 
ca voudrait dire que mon select n'est pas bon...  /
/ 
 
$sql  = mysql_query( "SELECT DISTINCT titre FROM film 
          WHERE  (titre LIKE  "%'.$recherche'%" 
                  OR resume LIKE "%'.$recherche'%" 
                 OR acteur LIKE "%'.$recherche'%" ) " ); 
 
une idée?
Marsh Posté le 22-09-2005 à 18:14:27
Des guillemets dans des guillemets, spa super. 
Marsh Posté le 22-09-2005 à 18:16:56
| sielfried a écrit : Des guillemets dans des guillemets, spa super.  | 
 
 
 
juste %'.$recherche'%  et "%'.$recherche'%" ?
Marsh Posté le 22-09-2005 à 18:18:10
plutot : \"
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é. 
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
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
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.
Marsh Posté le 22-09-2005 à 18:41:10
 
 
 
Et faire un petit tour sur http://fr2.php.net/manual/fr/language.types.string.php ne serait peut pas inutile pour hageshii .  
 
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
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)) 
{...}
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 ? 
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..