Question avec WHERE

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 : Question avec WHERE

par iclo » 27 déc. 2005, 18:24

Si tu as beaucoup de critère de recherche ça va être très lourd, l'opérateur like étant pas définition plus gourmant en ressource. le plus simple c'est de construire une requêtte "pas à pas" avec des tests, et comme je te l"ai indiqué de ne pas stoké des status en format texte mais bien sous forme de int.

par bins007 » 27 déc. 2005, 18:15

Ok merci

Mais je pensais à une autre solution, car celle qui tu propose est très longue car il y a plein de champ du formulaire

Ma solution est au lieu de mettre WHERE champ = valeur, mettre WHERE champ LIKE valeur.

Et donc la valeur de "Tous" serait %

Est ce une bonne solution ?

par iclo » 27 déc. 2005, 16:42

Une petite recherche sur le forum t'aurais renseigné un problême assez similaire à été traité il y a pas longtemps.

Tu testes la valeur de ce que te renvoit le formulaire avant, et en fonction des différentes valeurs tu construits ton query par concaténation. Si le choix est tous tu n'ajoute pas de critère dans la clause where.
Il vaudrait mieux ne pas stocker les status en clair, mais des codes dans un type int (1=en ligne, 2=hors ligne, etc) pour éviter de la redondance et accélerer les accès.

Question avec WHERE

par bins007 » 27 déc. 2005, 16:28

Bonjour,

Voilà j'ai fait un moteur de recherche qui cherche des informations de ma base de donnée MYSQL.

Donc il y'a un formulaire contenant une liste déroulante avec "Tous", "En ligne", "Hors ligne".

Donc je cherche dans la base de donnée avec sql :
"SELECT * FROM compte WHERE statut = '$statut'"

La variable $statut contient la valeur de la liste déroulante du formulaire.

Mais comment faire pour que si la valeur de la liste déroulante est "Tous", ça cherche tous les statut ?

J'ai mal expliqué mais je peux pas faire mieux désolé