bingojm | 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 :
- <?
- include("connexion.php" );
- echo "<table border=\"1\" align=\"center\">\n";
- echo "<tr bgcolor=\"#F5CA89\">";
- echo "<td width=\"135\" align=\"center\" valign=\"middle\">";
- echo "Nom du joueur";
- echo "</td>";
- echo "<td align=\"center\" valign=\"middle\">";
- echo "Points";
- echo "</td>";
- echo "<td align=\"center\" valign=\"middle\">";
- echo "Date";
- echo "</td>"."<br />";
- echo "</tr>";
- // Je parcours les joueurs pour reconstruire leur aborescence
- $sql_count = "SELECT count( id_joueur), count( DISTINCT id_hierarchy ) FROM `joueur`";
- $result_count = mysql_fetch_row(mysql_query($sql_count));
- $nb_joueur = $result_count[0];
- $niv_hierarchy = $result_count[1];
- for ($i = 1; $i <= $nb_joueur; $i++)
- {
- $level = $i;
- $resultat_temp = $level;
- //Je parcours les niveaux hiérarchiques pour voir les dépendances de chacun
- for ($j = 0; $j < $niv_hierarchy; $j++)
- {
- $sql_hierarchy1 = "SELECT id_joueur FROM joueur WHERE id_hierarchy in ($level)";
- $mysql_hierarchy1 = mysql_query($sql_hierarchy1);
- $temp = '';
- while (@$row_hierarchy1 = mysql_fetch_array($mysql_hierarchy1, MYSQL_NUM))
- {
- $temp .= ','.$row_hierarchy1[0];
- }
- $resultat_temp .= $temp;
- $level = trim(substr($temp,1,strlen($temp)));
- }
- //Je stocke les résultats
- $resultat[$i] = trim($resultat_temp);
- }
- // J'affiche les résultats. Là, je bloque!!! Voilà un début peut-être correct...
- // for ($i = 1; $i <= $nb_collaborateur; $i++)
- //{
- $query = "SELECT nom, points, date FROM joueur, production where idjoueur=id_joueur ORDER BY BINARY nom";
- $result = mysql_query($query) or die("Query failed" );
- while ($line = mysql_fetch_assoc($result)) {
- echo "<tr>\n";
- foreach ($line as $col_name => $col_value) {
- if ($col_name == 'nom')
- { echo '<td><a class="lien3" href="detail_joueur.php?id='.$line['id_joueur'].'">'.$col_value.'</a></td>'; }
- else
- { echo "<td>$col_value</td>";}
- }
- echo "</tr>";
- }
- echo "</table>\n";
- ?>
|
Voici le code pour l'espace membre:
Code :
- <?
- require("membres/conf.php3" );
- // CONNEXION MYSQL
- $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
- 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;}
- // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
- $requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link) or die(mysql_error());
- // SI L'ID N'EXISTE PAS
- if(mysql_num_rows($requete)==0)
- {
- // REDIRECTION PAGE ERREUR
- header("Location:$url_erreur" );
- exit;
- }
- // LIGNE FACULTATIVE : RECUPERATION DU PSEUDO
- $pseudo_membre=mysql_result($requete,0,"pseudo" );
- $id_membre=mysql_result($requete,0,"id_membre" );
- // DECONNEXION MYSQL
- mysql_close($db_link);
- ?>
|
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
|