Requete MySQL avec condition globale - SQL/NoSQL - Programmation
Marsh Posté le 04-02-2010 à 20:44:32
donc en fait, dans certains cas, tu voudrais juste fair eun SELECT * FROM champ
c'est ça ?
Marsh Posté le 04-02-2010 à 21:09:24
Oui au final c'est bien ça sauf que j'ai d'autres conditions.
En fait j'ai trouvé un moyen:
'SELECT * FROM champ WHERE machin LIKE $condition
où $condition= '%'
Marsh Posté le 04-02-2010 à 21:11:40
et si tu ne mettais pas de condition dans ce cas ?
Marsh Posté le 04-02-2010 à 22:32:24
oui mais c'est une fonction qui est appelée donc parfois j'ai une condition et d'autres fois non...
Je ne sais pas comment le gérer autrement...
Marsh Posté le 04-02-2010 à 23:47:20
C'est pas forcément une mauvaise chose. De toute façon, l'optimiseur de requête prendra les mesures nécessaires
Marsh Posté le 05-02-2010 à 10:50:43
Ben suffit de faire un test si y'a besoin de mettre la condition ou pas.
Code :
|
Marsh Posté le 06-02-2010 à 15:17:20
bon la syntaxe est pas forcement correct au niveau des apostrophe et quote mais voila l idée
if(le test){
$condition ="and machin='$filtre'";
}else{
$condition='';
}
$sql="select * from champ where 1=1 '$condition'";
ca marchera qu'il y ai une condition ou non.
le $condition serait dans ton cas le retour de ta fonction
Marsh Posté le 08-02-2010 à 11:11:42
d@kn1ko a écrit : bon la syntaxe est pas forcement correct au niveau des apostrophe et quote mais voila l idée |
Ca revient exactement au même que le code que j'ai proposé précédemment
Marsh Posté le 08-02-2010 à 11:23:41
Oui, sauf que la syntaxe est plus modulaire et te permet d'enchainer les conditions (en concatenant des and dans tous les cas) sans te demander si tu as deja ecrit le where ou non. Une autre solution plus elegante consiste a utiliser une variable 'separateur' comme suit :
Code :
|
Marsh Posté le 08-02-2010 à 19:26:55
Merci de vos réponses!
J'ai un peu laissé tomber cette partie pour l'instant j'y reviendrai certainement plus tard.
JE vais voir pour la solution par le test.
Marsh Posté le 04-02-2010 à 19:55:27
Bonjour,
Je souhaiterai créer une requête MySQl du type:
'SELECT * FROM champ WHERE machin =' . $condition
Je voudrais que la variable $condition puisse prendre toutes les valeurs présente dans le champ machin dans certains cas.
J'ai donc essayé de lui attribuer une valeur joker du type * ou %, mais ça ne passe pas.
Je pense que je m'y prend mal, mais je ne vois pas comment faire...
Merci de votre aide.