Variable texte

Résolu
Xop777 Messages postés 7 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 11 décembre 2007 - 30 nov. 2007 à 01:22
Xop777 Messages postés 7 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 11 décembre 2007 - 30 nov. 2007 à 12:07
Je veut apres avoir remplis un formulaire de recherche et recuperer les données du formulaire puis crée ma requete mysql.

Par exemple: NOM, PRENOM, AGE

Si j'entre seulement le nom alors ma variable $parametre sera: nom=Valeur1
Si j'entre Nom et age, $parametre sera: nom=Valeur1 AND age=valeur3
Si les 3 case sont remplis, $parametre sera: nom=Valeur1 AND prenom=Valeur2 AND age=valeur3

sans devoir crée un IF pour chaque possibilité car il y a plus  que 3 parametre.

si quelqu'un a un idée...

merci

3 réponses

yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 2
30 nov. 2007 à 05:46
Salut , tu peux toujours faire simplement

avec un Array:

$keys=Array();

    foreach($_POST as $variable=>$valeur)
    {
      if (trim($valeur)!="")
          array_push($keys,"`$variable` = "".mysql_real_escape_string($valeur).""");
    }
    $string_vars = implode(" AND ",$keys);
   
        mysql_query ("SELECT * FROM `table` WHERE $string_vars");

Sans array:
$i=0;
    foreach($_POST as $variable=>$valeur)
    {
      if (trim($valeur)!="")
      {
    if ($i!=0)             $string_vars ."AND `$variable` "".mysql_real_escape_string($valeur)."" ";
    else             $string_vars "`$variable` "".mysql_real_escape_string($valeur)."" ";
       $i++;
    }
    }
  
        mysql_query ("SELECT * FROM `table` WHERE $string_vars");

ça contruit donc la requete avec un nombre illimité d'arguments.

J'ai codé ça directement ici j'ai pas testé. , je te l'ai fais avec et sans array pour que tu prenens celle que tu comprends le mieu
Biensur c'est avec cette méthode tu dois pas oublié déliminé les variables POST que tu veux pas (par exemple le bouton submit) avec des if...

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
3
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
30 nov. 2007 à 04:18
tu pourrais creer une fonction javascript que tu appeleré lorsque ton champ de saisie perd le focus :
onblur="affectparam('this');"
et tu met un input de type hidden pour ta requet

et ta fonction du genre :
function affetcparam(element){
param = document.getElementById(element).name+'='+ document.getElementById(element).value+' and ';
document.getElementById('requete').value = param;
}
comme ca lors du submit tu fai un substr pour enlever le dernier ' and ' de ta requete et tu obtient la requete finale.

j'espere avoir pu t'aider car je vien de faire le code j'ai jamais testé


Personne ne peut se permettre de juger l'autre....
0
Xop777 Messages postés 7 Date d'inscription mercredi 11 janvier 2006 Statut Membre Dernière intervention 11 décembre 2007
30 nov. 2007 à 12:07
Merci a vs 2 je vais testé sa :)
0
Rejoignez-nous