Page 1 sur 1

requête mysql vide après triatement en php

Posté : 23 juil. 2006, 16:11
par sam01
Bonjour à tous,

pouvez vous m'aider à coder la requête suivante, en effet j'ai le message d'ereur query empty :

Code : Tout sélectionner

$sql = sprintf("SELECT id,marque,designation,categorie,resume_court,prix_ttc,disponibilite FROM lldiffusion_produit WHERE resume_long LIKE %s OR designation LIKE %s", quote_smart($pa)); $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error())
et le code php qui la précède est le suivant :




$decoupe=explode(" ",$mot);

						// On lit le tableau pour pouvoir traiter la chaîne.
						foreach($decoupe as $key=>$val)
						{

							//Là on crée une chaîne pour la recherche afin d’avoir chaque mot entouré de % et OR entre chaque mots pour pouvoir faire notre requête plus tard
							/*$pa. = "'%$val%'";*/
							$pa = '%'.$val.'%';

							//Pour éviter de finir la chaîne par un OR
							if($key < (count($decoupe)-1))
							//$pa.=" OR ";
							$pa = " OR ";
							
						}

										function stripslashes_deep($value)
										{
											$value = is_array($value) ?
											array_map('stripslashes_deep', $value) :
											stripslashes($value);

											return $value;
										}

										// Protège la variable avant l'insertion
								
										function quote_smart($value)
										{
											// Stripslashes si nécessaire
											if (get_magic_quotes_gpc())
											{
												$value = stripslashes_deep($value);
											}

										// Protection si ce n'est pas un entier
											if (!is_int($value))
											{
												$value = "'" . mysql_real_escape_string($value) . "'";
											}

											return $value;
										}




merci pour votre aide.

Posté : 23 juil. 2006, 17:04
par Truc
Salut,

Que donne la requête générée ?
Elle doit s'afficher avant le message d'erreur (d'après ton code).

Dans la requête tu as deux "%s" or tu n'as qu'une variable de remplacement "quote_smart($pa)".

Posté : 23 juil. 2006, 17:18
par sam01
bonjour et merci pour ta réponse rapide.
le message que j'ai est uniquement query empty.
Ce n'est aps vraiment une erreure. Comment fiare pour forcer mon code malgré cela à efficher la requête valorisée.

Posté : 23 juil. 2006, 17:25
par Truc
"query was empty" peut être... :-k

Tu as ceci dans le code:
or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error())
ce qui signifi qu'en cas d'erreur mysql tu as un message avec "Erreur SQL !" puis la requête générée et enfin le message associé.
Il faudrait montrer ces lignes au complet.

Tu dis qu'il ne s'agit pas d'une erreur... le résultat de la requête s'affiche à la suite ?