requête mysql vide après triatement en php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requête mysql vide après triatement en php

par Truc » 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 ?

par sam01 » 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.

par Truc » 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)".

requête mysql vide après triatement en php

par sam01 » 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.