problème de boucle - PHP - Programmation
Marsh Posté le 01-08-2006 à 18:45:18
jenny50 a écrit : Bonjour c'est encore un post de JENNY !!! |
\o/ \o/
s'paske tu fais encore n'importe quoi !!!!
Remplace toute la partie en dessous de "if ($_SESSION['ses_grp_dlf']==1)" par
Code :
|
Marsh Posté le 02-08-2006 à 09:16:39
T'as solution ne fonctionne pas. Je pense que c'est dans ma première requete que ça coince. Car il n'affiche qu'une ligne de résultats, soit le groupe de la session 'dlf' pour mon user alors qu'il appartient aussi au groupe de session 'sca'. On devrait voir s'afficher :
CAT 24
>scat1
>scat2...
EVENEMENT
>consulter la liste
CANDIDATURE
>consulter la liste
Avec mon script je vois ça :
CAT 24
>scat1
>scat2...
Avec ton script, on voit ça :
CAT 24
>scat1
CAT 24
>scat2
...
Comment je peux faire?
Marsh Posté le 02-08-2006 à 11:04:38
jenny50 a écrit : Comment je peux faire? |
Réfléchir ?
Effectivement il me manquait un truc dans le code que j'ai filé!
Voila en corrigé:
Code :
|
Et maintenant tu devrais obtenir le même resultat qu'avec ta méthode ( sauf que la mienne est correcte )
Et ensuite pourquoi t'étonnes tu de n'avoir que la cat 24 alors que dans ta requete tu as:
Citation : SELECT cat_lib, scat_cle, scat_lib FROM souscategorie INNER JOIN categorie ON scat_categorie=cat_cle WHERE cat_cle=24 ORDER BY scat_cle ASC |
???
Marsh Posté le 02-08-2006 à 12:09:51
Citation : Et ensuite pourquoi t'étonnes tu de n'avoir que la cat 24 alors que dans ta requete tu as: |
???[/quotemsg]
Mais non c'est dans cette requete que ça ne fonctionne pas. Il affiche seulement la première ligne de résultat, donc il considère seulement le premier groupe (droit 'dlf') auquel appartient mon user. Alors qu'il appartient à au autre groupe (droit 'sca'). C'est pour cette raison que je ne vois que CAT24. Mais je ne sais pas comment faire ma boucle pour qu'il puisse considéré que mon user a plusieurs groupes !!!
REQUETE avec PROBLEME à mon avis :
Code :
|
Marsh Posté le 02-08-2006 à 12:26:31
jenny50 a écrit : |
Au secours
C'est normal qu'il n'affiche que le 1er groupe, tu ne boucles pas sur les résultats tu récupères juste le premier:
Code :
|
Tu mélanges toutes tes entitées et tu espères avoir le bon résultat.
Alors proprement tu devrais faire ainsi:
1- requête: récupération des informations de l'utilisateur (utilisateurs.uti_cle, utilisateurs.uti_nom, utilisateurs.uti_prenom, uti_cle)
2- stockage dans $individu ( comme tu fais là)
3- requête: récupération de la liste des groupes auxquels appartient $individu ( via un where sur liengrp.uti_cle qui doit être égale à individu[uti_cle] récupéré en 1)
4- Requête de récupération de toutes les cats auquels les groupes récupérés en 3 ( n'oublie pas le distinct)
5- boucle sur les résultats cat:
5.1- Affichage de la partie "cat"
5.2- Requete de récupération des sous-catégorie de la cat
5.3- boucle sur les résultats sous-cat
5.3.1- affichage de chacune des sous-cat
5.4- Fin d'affichage de la cat ( tu dois avoir des tr/td à fermer)
6- FIN
Et voila c'est tout! Mais encore une fois tu mélanges tout
N.D.A.: il existe plusieurs façons bien plus optimisées de réaliser ceci ( ne serait qu'en jointant correctement les différents requêtes), je suis tout a fait d'accord. Le problème est de l'expliquer clairement à l'auteur de ce topic!
Marsh Posté le 02-08-2006 à 13:02:39
Tu es vraiment super anapajari !!! Tu es patient et je te remercierai jamais assez!!!
C'est vrai que je mélange un peu tout mais surtout j'ai du mal à expliquer ce que je souhaite faire.
Je vais reprendre ma page avec toutes les informations données au dessus.
Marsh Posté le 01-08-2006 à 17:22:35
Bonjour c'est encore un post de JENNY !!!
Cette fois-ci je cale sur ma boucle de résultats. En fait, j'ai une partie admin avec mot de passe. Chaque utilisateurs est lié à un groupe. Un utilisateur peut avoir plusieurs groupes. J'affiche sur mon index de mon admin un menu selon le groupe de mon utilisateur. Ici le problème est que mon USER est lié à 2 groupes, donc qu'il doit voir 3 rubriques : CANDIDATURE, EVENEMENT et CAT 24.
Le problème est qu'il voit uniquement la CAT 24 alors qu'il appartient au groupe "sca" et "dlf". Voici mon code, pourriez-vous m'aider et me dire comment je dois faire pour qu'il prenne en compte les 2 profils de la personne qui se connecte? Quand j'execute ma requete j'ai bien 2 lignes de résultats.