Comment afficher les résultats uniquement du membre connecté?

Comment afficher les résultats uniquement du membre connecté? - PHP - Programmation

Marsh Posté le 04-05-2008 à 16:59:44    

Je vous explique mon soucis:
Jusque là, j'ai créé une page récupérant les données dans ma table. Il s'agit des résultats correspondants à chaque joueur.
Je voulais que ces résultats s'affichent groupés par nom. Finalement, j'ai les résultats de tous les joueurs qui s'affichent, et lorsque je clique sur un des joueurs, j'arrive sur une nouvelle page qui n'affichent que les résultats du joueur sélectionné.
Jusque là, tout est ok, mais maintenant, je voudrais une condition supplémentaire très important.
Je voudrais que le joueur qui accède aux résultats ne voit que ses propres résultats et ceux de son équipe. (Il est important de savoir que dans ma table "joueur" j'ai associé chaque joueur à un niveau hiérarchique, donc je sais dire qui fait partie de telle ou telle équipe. C'est une structure pyramidale)
Aussi, chaque page contient déjà une vérification pour voir si le joueur est bien enregistré, et donc membre.  
Voici le code que j'utilise pour voir les résultats et récolter les niveaux hiérarchiques:

Code :
  1. <? 
  2. include("connexion.php" ); 
  3. echo "<table border=\"1\" align=\"center\">\n";
  4. echo "<tr bgcolor=\"#F5CA89\">";
  5. echo "<td width=\"135\" align=\"center\" valign=\"middle\">";
  6. echo "Nom du joueur";
  7. echo "</td>";
  8. echo "<td  align=\"center\" valign=\"middle\">";
  9. echo "Points"; 
  10. echo "</td>";
  11. echo "<td align=\"center\" valign=\"middle\">";
  12. echo "Date"; 
  13. echo "</td>"."<br />"; 
  14. echo "</tr>";
  15. // Je parcours les joueurs pour reconstruire leur aborescence   
  16. $sql_count = "SELECT count( id_joueur), count( DISTINCT id_hierarchy ) FROM `joueur`";
  17. $result_count = mysql_fetch_row(mysql_query($sql_count));
  18. $nb_joueur = $result_count[0];
  19. $niv_hierarchy = $result_count[1];
  20. for ($i = 1; $i <= $nb_joueur; $i++)
  21. {
  22. $level = $i;
  23. $resultat_temp = $level;
  24. //Je parcours les niveaux hiérarchiques pour voir les dépendances de chacun  
  25. for ($j = 0; $j < $niv_hierarchy; $j++)
  26. {
  27.   $sql_hierarchy1 = "SELECT id_joueur FROM joueur WHERE id_hierarchy in ($level)";
  28.   $mysql_hierarchy1 = mysql_query($sql_hierarchy1);
  29.   $temp = '';
  30.   while (@$row_hierarchy1 = mysql_fetch_array($mysql_hierarchy1, MYSQL_NUM))
  31.   {
  32.    $temp .= ','.$row_hierarchy1[0];
  33.   }
  34.   $resultat_temp .= $temp;
  35.   $level = trim(substr($temp,1,strlen($temp)));
  36. }
  37. //Je stocke les résultats  
  38. $resultat[$i] = trim($resultat_temp);
  39. }
  40. // J'affiche les résultats. Là, je bloque!!! Voilà un début peut-être correct...
  41. // for ($i = 1; $i <= $nb_collaborateur; $i++)
  42. //{
  43. $query = "SELECT nom, points, date FROM joueur, production where idjoueur=id_joueur ORDER BY BINARY nom";
  44. $result = mysql_query($query) or die("Query failed" );
  45. while ($line = mysql_fetch_assoc($result)) {
  46.     echo "<tr>\n";
  47. foreach ($line as $col_name => $col_value) {
  48.   if ($col_name == 'nom')
  49. { echo '<td><a class="lien3" href="detail_joueur.php?id='.$line['id_joueur'].'">'.$col_value.'</a></td>'; }
  50.   else
  51.    {   echo "<td>$col_value</td>";}
  52. }
  53.     echo "</tr>";
  54. }
  55. echo "</table>\n";
  56. ?>


Voici le code pour l'espace membre:

Code :
  1. <?
  2. require("membres/conf.php3" );
  3. // CONNEXION MYSQL
  4. $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
  5. if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}
  6. // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
  7. $requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link) or die(mysql_error());
  8. // SI L'ID N'EXISTE PAS
  9. if(mysql_num_rows($requete)==0)
  10. {
  11. // REDIRECTION PAGE ERREUR
  12. header("Location:$url_erreur" );
  13. exit;
  14. }
  15. // LIGNE FACULTATIVE : RECUPERATION DU PSEUDO
  16. $pseudo_membre=mysql_result($requete,0,"pseudo" );
  17. $id_membre=mysql_result($requete,0,"id_membre" );
  18. // DECONNEXION MYSQL  
  19. mysql_close($db_link);
  20. ?>


En partant de ça, comment faire pour que le joueur qui accède aux résultats ne voit que ses propres résultats et ceux de son équipe?


Message édité par bingojm le 04-05-2008 à 17:15:40
Reply

Marsh Posté le 04-05-2008 à 16:59:44   

Reply

Marsh Posté le 04-05-2008 à 23:43:05    

Vraiment personne pour m'aider? Ou cela est vraiment irréalisable?
Merci de m'éclairer... je suis perdu

Reply

Marsh Posté le 05-05-2008 à 10:35:59    

C'est possible, mais cela nécessite des ajustements dans le code déjà écrit (qui vient en parti de moi si je ne m'abuse  :D ).
Je me suis rendu compte de certains soucis :

  • le code ne fonctionne plus si les numéros des id_joueur dans la BDD ne sont pas jointifs
  • il faudrait stocker dans le tableau $resultat l'id joueur en face de son arbre hiérarchique


Une fois que tu auras fait cela, ce sera plus jouable...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Sujets relatifs:

Leave a Replay

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