requête mysql vide après triatement en php

Eléphant du PHP | 216 Messages

23 juil. 2006, 16:11

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 juil. 2006, 17:04

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)".

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 216 Messages

23 juil. 2006, 17:18

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 juil. 2006, 17:25

"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 ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute