Jump to content
WebFrance
  • Rejoignez WebFrance

    Inscrivez vous aujourd'hui et recevez le Guide gratuit du e-Business

     

requête avec des variables... ou pas !


 Share

Recommended Posts

Bonsoir à tous,

je sèche sur un truc...

je dois faire un SELECT * FROM mabase WHERE var1='$var1' AND var2='$var2' AND var3='$var3' AND ... ... mais les variables ne sont pas forcément envoyé par POST (en fait, il y en a plus que 3 !!) !

comment faire ma requête sur les variables disponibles tout en ne tenant pas compte des variables non envoyées ?

je ne pense pas pouvoir utiliser if car un internaute peut envoyer la variable 1, ou la 2, ou la 1 ET la 3 ou la 3 tout seul etc etc... ça ferait beaucoup de if/elseif !!

y a t'il une fonction php qui permet de dire: "tient compte de la condition si elle existe" ??

merci de vos lumières

Eric

Link to comment
Share on other sites
Partagez cette page :

>> Nouveau : Découvrez la marketplace d'Achat / Vente de Sites !

Salut spacemarmotte :)

y a t'il une fonction php qui permet de dire: "tient compte de la condition si elle existe"

Ben, le "si" que tu utilises, c'est un "if" donc pas le choix :)

Tu peux construire petit à petit ta requête avant de l'exécuter ensuite, par exemple :

$tab_vars=array('var1','var2','var3',...);

$req='SELECT * FROM mabase WHERE 1';

foreach($tab_vars as $var){

  if(isset($_REQUEST[$var]) && $_REQUEST[$var]!=''){

     $req.=' AND '.$var.'="'.mysql_real_escape_string($_REQUEST[$var]).'"';

  }

}

$result = mysql_query($req);

...

En espérant que cela t'aide :)

Link to comment
Share on other sites
Partagez cette page :

Merci Pascal,

je comprends l'idée générale mais... (forcément, il y a un "mais") les $var font référence à des champs différents de la base. Ce n'est pas id=$var1 AND id=$var2...

c'est plutôt une requête croisée sur plusieurs champs de la bdd: if id=$var1 AND nom=$var2 AND region=$var3 ...

j'avoue ne pas comprendre, dans la structure de la requête, comment placer les conditions..

Eric

Link to comment
Share on other sites
Partagez cette page :

Merci Him..

j'avoue mieux comprendre cette syntaxe... même si je n'arrive pas a la mettre en pratique ! ça bug !

les variables sont bien reconnues et prennent bien les valeurs par $_POST (ou rien si je ne sélectionne rien !) mais on dirait que la requête ne donne aucun résultat !

j'ai pourtant ciblé sur des éléments présents dans la base !

a quoi servent les .' '. dans la requête ? c'est une concaténation ?

Edited by spacemarmotte
Link to comment
Share on other sites
Partagez cette page :

Apparemment, il n'est pas possible de mettre des if dans un SELECT !!

j'ai lu ça sur quelques fora et tutos et comme je n'ai pas réussi à le mettre en place, je ne peux pas prouver le contraire !!

J'y suis parvenu autrement. Si ça intéresse qqun:

//on vérifie l'existence des variables S_POST

$rq1 = NULL;

          if (isset($_POST["id"])) {

               $rq1 = " AND id='$id'";

               }

          if(empty($_POST["id"])) {

               $rq1 = '';

          }


          $rq2 = NULL;

          if (isset($_POST["nom"])) {

               $rq2 = " AND nom='$nom'";

               }

          if(empty($_POST["nom"])) {

               $rq2 = '';

          } etc etc.. pour toutes les variables a contrôler


//le select:


$requete = "SELECT * FROM mabase WHERE 1=1 $rq1 $rq2 .. autant de $rqX .. ORDER BY.. ";

c'est un peu lourd, il existe peut-être plus simple... mais je n'ai pas trouvé ! et là, ça fonctionne !

Merci quand même pour le coup de main les copains ;-)

Link to comment
Share on other sites
Partagez cette page :

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share



© WebFrance - Contact - Annonceurs - Conditions générales - Legal

×
×
  • Create New...