[RESOLU] Sélectionner un champ contenant une partie d'une variable

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] Sélectionner un champ contenant une partie d'une variable

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

par street51 » 24 janv. 2017, 15:52

Merci, problème résolu !

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

par Spols » 24 janv. 2017, 09:16

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

par street51 » 23 janv. 2017, 18:15

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

par Spols » 23 janv. 2017, 17:59

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

par street51 » 23 janv. 2017, 17:53

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

par Spols » 23 janv. 2017, 17:37

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

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

par street51 » 23 janv. 2017, 17:02

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 !