Page 1 sur 1

Sélectionner un champ contenant une partie d'une variable

Posté : 23 janv. 2017, 17:02
par street51
Bonjour,

J'ai un petit problème qui est sans doute simple à résoudre, mais je bloque...

J'ai une table "membres" qui possède une colonne "conges" contenant une liste d'initiales (par exemple : "MLG MP AC").
J'ai un formulaire permettant de filtrer certaines initiales via un champ texte (par exemple, on tape "AC IL").

Je souhaiterais ensuite sélectionner l'id des champs où la colonne "conges" contient les initiales correspondantes (dans ce cas, l'id du champ où "conges" contient "MLG MP AC"). Je ne peux pas passer par LIKE puisqu'il ne cherchera que "%AC IL%" et pas juste "AC".

Merci pour votre aide, j'espère avoir été clair !

Re: Sélectionner un champ contenant une partie d'une variable

Posté : 23 janv. 2017, 17:37
par Spols
Tout dépend si tu veux un ET ou un OU

mais le principe est le même, tu découpe la valeur de recherche par l'expace et tu fait une clause LIKE par entité. pour un cllassement par pertinence (dans le cas OU) il faudra un peu ruser et si il y a beaucoup de terme, la requète sera longue en temps et ressources

Re: Sélectionner un champ contenant une partie d'une variable

Posté : 23 janv. 2017, 17:53
par street51
En fait, la requête par défaut est "SELECT initiales from membres Order by initiales Asc" pour afficher une colonne pour chaque initiales.
Je souhaiterais que le filtre (un champ texte ou l'on écrit une liste d'initiales à filtrer) permette d'afficher uniquement les champs dont les initiales sont contenues dans le filtre.

Par exemple :
id / initiales
1 / MLG
2 / AP
3 / MC
4 / AC

De base, j'ai quatre colonnes : MLG / AP / MC / AC
Si le filtre contient "AP MC", je souhaiterais juste afficher : AP / MC

Re: Sélectionner un champ contenant une partie d'une variable

Posté : 23 janv. 2017, 17:59
par Spols
montre nous ton code, ce sera peut être plus simple de comprendre ce que tu cherche à faire

Re: Sélectionner un champ contenant une partie d'une variable

Posté : 23 janv. 2017, 18:15
par street51
J'ai une table "membres" comprenant une colonne "initiales" :

Image

J'ai un tableau comprenant en lignes les dates du mois, et en colonnes les initiales des différents membres :

Code : Tout sélectionner

<tr> <th>Date</th> <? $req = mysql_query("SELECT initiales from membres Order by initiales Asc") or die ("Erreur requête"); $res = mysql_num_rows($req); $a=0; while($res!=$a) { $initiales = mysql_result($req,$a,"initiales"); ?> <th><? echo $initiales; ?></th> <?php $a++; } ?> </tr>
Image

On peut voir au-dessus du tableau un champ permettant de renseigner les initiales des membres à filtrer.
J'aimerais que lorsqu'existe $_POST['filtre'] on affiche uniquement les colonnes correspondantes.

J'espère avoir été plus clair. Merci :wink:

Re: Sélectionner un champ contenant une partie d'une variable

Posté : 24 janv. 2017, 09:16
par Spols
avec explode, tu peux transformer la chaine de recherche en tableau en filtrant sur l'espace.

ensuite une condition dans ton tableau avec in_array devrait suffire.
Compte le nombre de colonne ajouté afin d'ajouter le bon nombre de case à chaque ligne

Re: Sélectionner un champ contenant une partie d'une variable

Posté : 24 janv. 2017, 15:52
par street51
Merci, problème résolu !