variable avec plusieurs valeurs

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 : variable avec plusieurs valeurs

Re: variable avec plusieurs valeurs

par Ryle » 13 juin 2016, 18:45

Bonjour,

Si les valeurs sont envoyées depuis des cases à cocher, tu n'as même pas besoin de faire un explode et tu dois pouvoir directement récupérer un tableau de résultats que tu pourras parcourir pour construire ta requête comme indiqué par Naroth.

Attention toutefois car cette façon de faire (stocker plusieurs valeurs dans un même champ) n'est absolument pas optimisée ni pratique avec une base de données sql relationnelle. De plus cela peut engendrer des erreurs car la chaîne "paul" sera également trouvée dans la chaîne "pauline". La comparaison devient dès lors complexe à réaliser.

Re: variable avec plusieurs valeurs

par Naroth » 11 juin 2016, 18:43

Si ils sont tous séparé par des virgules,
tu peux utiliser la fonction explode (http://php.net/manual/fr/function.explode.php)

Code : Tout sélectionner

$string = "pierre, paul, jacques"; $explode_string = explode(",",$string); var_dump($explode_string);
Ce qui te donnera

Code : Tout sélectionner

array (size=3) 0 => string 'pierre' (length=6) 1 => string ' paul' (length=5) 2 => string ' jacques' (length=8)

Re: variable avec plusieurs valeurs

par Chile » 11 juin 2016, 16:29

Bonjour Naroth,
Merci pour ta réponse.
Le soucis est que les valeurs prénom arrivent dans une seule variable.
Je peux avoir dans cette variable, pierre, paul, ou jacques, alex, henri ou paul ou jacques, pierre.

dois je decomposer d'une manière la variable avant le select ?

Re: variable avec plusieurs valeurs

par Naroth » 11 juin 2016, 15:22

Bonjour Chile ,

Dans ta requête, tu vas devoir ajouter des conditions, avec un "LIKE"

Si je reprend ton exemple :

Code : Tout sélectionner

WHERE `prénom` LIKE '%pierre%' AND `prénom` LIKE '%paul%' AND `prénom` LIKE '%jacques%'
% : Est le caractère joker. Dans ce cas il permet de cherche tous les champs prénom qui contiennent au moins 'pierre' ET 'paul' ET 'jacques'.

Re: variable avec plusieurs valeurs

par Chile » 11 juin 2016, 14:17

voici un exemple pour une meilleure compréhension

Je souhaite mettre en place un systeme de filtre pour une selection.
J'ai un formulaire avec des case a cocher.

Pour l'affichage suivant les choix sur le formulaire, je peux avoir le cas d'une variable qui contient plusieurs valeurs.
Je recherche si le contenu de cette variable, est présent dans le champs d'une des colonnes de la table.

Le champ de cette colonne peut aussi contenir plusieurs valeurs.

exemple:
mon choix de case a cocher mémorise: pierre, paul, jacques

dans mon champs de colonne 'prénom' , ligne 1, j'ai: daniel, alex, paul, henri
dans mon champs de colonne 'prénom' , ligne 2: pierre, philippe, paul, marc
dans mon champs de colonne 'prénom' , ligne 3: jacques, stéphane, paul, roger, pierre

je souhaite afficher toutes les lignes qui contiennent dans la colonne, au moins, les choix de ma selection.

donc j'aurai comme affichage seulement la ligne 3.

Merci.

variable avec plusieurs valeurs

par Chile » 11 juin 2016, 02:07

Bonjour,

J'ai besoin dans un select de rechercher avec une variable pouvant contenir plusieurs valeurs, si cette ou ces valeurs sont contenu dans un champs de colonne, pouvant aussi contenir plusieurs valeurs.

Merci si quelqu'un peut m'orienter.