[RESOLU] Insérer une variable $critère dans un énoncé SELECT

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 : [RESOLU] Insérer une variable $critère dans un énoncé SELECT

Re: Insérer une variable $critère dans un énoncé SELECT

par devlop78 » 07 févr. 2011, 01:23

D'ailleurs, la concaténation se s'applique pas dans une chaine de caractère :

"resultats.$categorie._a";

Tu peux faire

"resultats_${categorie}_a";

bien sûr en ayant vérifié par exemple preg_match("/^[a-z0-9]+$/i",$categorie); ou filtré preg_replace ("/[^a-z0-9]/i",$categorie)

Re: Insérer une variable $critère dans un énoncé SELECT

par devlop78 » 07 févr. 2011, 01:19

Tout est possible tout est réalisable. Cependant, attention à toujours "valider", "filtrer" ou "convertir" les données utilisateurs (en général même).

Ainsi :

select * from matable where id=$_POST['id'], données à convertir
select $_POST['champ'] from matable, données à valider ou à filtrer (pour vérifier qu'il répond à un masque)

Mais sinon, tout est possible ...

Insérer une variable $critère dans un énoncé SELECT

par mtherrie » 06 févr. 2011, 21:41

Bonjour à vous,

Étant nouveau et me rendant compte que je me complique probablement les choses, j'aimerais vous poser la question suivante:

Est-ce possible d'insérer une variable $critère dans un énoncé MySQL de la façon suivante:

1) Dans la définition de mes variables, j'en ai créé une comme suit: $critere="resultats.$categorie._a";
a) la variable catégorie est déterminée par le POST d'un bouton radio choisi par l'usager
2) Dans la base de donnée, j'ai une table s'appelant "resultats_atome_a", une autre appelée "resultats_moustique_a" etc.
3) L'énoncé MySQL que j'aimerais créer serait du type:

$sql_get_data="SELECT * FROM $critere ORDER BY points DESC";

Est-ce possible? Y a t-il une façon plus simple?

Merci de me lire!

Marc