récupération du nom de la colonne où se trouve le résultat

récupération du nom de la colonne où se trouve le résultat - PHP - Programmation

Marsh Posté le 07-08-2008 à 18:56:16    

Bonjour à vous tous,
Je vous remercie par avance de l'aide que vous pourrez m'apporter.
 
Exposé du problème dans un système de notation:
 
J'ai une requête :
 
$query=mysql_query("select id_part from evaluations where id_quest=\"".$q."\" and
(`n+1_hierar` LIKE \"%|".$pa[id_part]."|%\"
 OR `n+1_reseau` LIKE \"%|".$pa[id_part]."|%\"
 OR `n_collegues` LIKE \"%|".$pa[id_part]."|%\"
 OR `n_reseau`  LIKE \"%|".$pa[id_part]."|%\"
 OR `n-1_subordonnes` LIKE \"%|".$pa[id_part]."|%\"
 OR `n-1_reseau` LIKE \"%|".$pa[id_part]."|%\"
)" );
 
Je cherche donc l'identifiant d'un participant évalué (dans la clause select id_part) dans un questionnaire spécifique (id_quest) qui est évalué par un participant évaluateur ($pa[id_part]).
donc je récupère classiquement l'id des évalués  par :
 
while ($qui=mysql_fetch_array($query)) { echo $qui[id_part]; }
 
Ce que je veux obtenir :
 
Je souhaite savoir où le WHERE à trouvé le résultat pour chaque ligne retourné dans le tableau,
dans n+1_hierar ou bien n+1_reseau ou bien n_collegues....
Donc, comment je récupère le nom du champs dans lequel le résultat a été trouvé sachant que $pa[id_part] ne peut être cité qu'une seule fois dans les six champs qui sont traité par LIKE
(soit un évaluateur ne peut pas etre n+1_reseau ET n_collegue pour un évalué)
Je cherche à savoir si l'évaluateur  ($pa[id_part]) est n+1_hierar ou bien n+1_reseau ou bien n_collegues, etc....
 
Voilà, c'est mon devoir de vacances, et là, je sèche...

Reply

Marsh Posté le 07-08-2008 à 18:56:16   

Reply

Marsh Posté le 08-08-2008 à 11:43:09    

ben tu recuperes tous ces champs dans ta requete et tu regardes lequel est à $pa[id_part]


Message édité par Sebastien le 08-08-2008 à 11:43:43
Reply

Marsh Posté le 08-08-2008 à 11:50:08    

dans ta requete selectionne n+1_reseau etc, et en php regarde dans lequel tu as ta valeur

 

edit: grillé par sébastien


Message édité par ouiouioui10 le 08-08-2008 à 11:51:06
Reply

Marsh Posté le 08-08-2008 à 15:03:36    

oui c'est ce que j'ai fini par faire :
 
$pattern="%|".$pa[id_part]."|%";
 
$query=mysql_query("select id_part,`n+1_hierar`,`n+1_reseau`,`n_collegues`,`n_reseau`,`n-1_subordonnes`,`n-1_reseau evaluations where id_quest=\"".$q."\" and
(`n+1_hierar` LIKE \"".$pattern."\"
 OR `n+1_reseau` LIKE \"".$pattern."\"
 OR `n_collegues` LIKE \"".$pattern."\"
 OR `n_reseau`  LIKE \"".$pattern."\"
 OR `n-1_subordonnes` LIKE \"%".$pattern."\"
 OR `n-1_reseau` LIKE \"".$pattern."\"
)" );
 
ensuite dans la boucle while  
 
if (eregi($pattern,$qui['n+1_hierar'])) { echo "blablabla";}
if (eregi($pattern,$qui['n+1_reseau'])) { echo "blablabla";}
if (eregi($pattern,$qui['n_collegues'])) { echo "blablabla";}
if (eregi($pattern,$qui['n_reseau'])) { echo "blablabla";}
if (eregi($pattern,$qui['n-1_subordonnes'])) { echo "blablabla";}
if (eregi($pattern,$qui['n-1_reseau'])) {echo "blablabla";}
 
ça marche très bien, merci !
 
Cependant, il n'y a rien de plus direct ?
C'est juste une question.
 

Reply

Marsh Posté le 08-08-2008 à 15:05:57    

Arreter d'exploiter les ereg ces fonctions sont depreciées. exploitez plutot les preg ... elles sont plus complexe mais plus puissante et plus rapides.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed