probleem met query voor verdeling van rechten
ik heb een probleem met een query waar ik na lang proberen nog niet uitkom.
In mijn ledensysteem is er de mogelijkheid om tot een of meerdere groepen te horen. Er zijn drie mogelijkheden: 1) je bent admin, en hebt daardoor het recht tot aanpassen van alle groepen, 2)je bent geen admin maar wel lid van de groep en kunt daardoor alleen deze groep aanpassen, of 3) geen admin en geen lid, waardoor je alleen de lijst van bestaande groepen ziet.
Wat wel goed werkt, is wanneer men admin is. De rijen worden laten zien met alle aanpassingsmogelijkheden.
Vervolgens worden bij de beide andere opties rijen dubbel of vaker laten zien, afhankelijk van van hoeveel groepen de gebruiker lid is. Nergens lid betekent dat er geen enkele rij wordt laten zien. Lid van één groep is zoals ik het uiteindelijk wil. Lid van twee groepen en alles wordt dubbel laten zien, etc, etc..
Hieronder het stukje code waar het probleem in zit:
Hopelijk duidelijk genoeg voor een helpende hand.
Groet Raúl
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
else
{
$queryGr = "SELECT * FROM bureaugroep, groep WHERE bureaugroep.b_id ".$_SESSION['id']." AND bureaugroep.gr_id = groep.gr_id ORDER BY bureaugroep.gr_id DESC";
$resultGr = mysql_query($queryGr) or die("SQL_Fout | " . mysql_error());
//optie 1: je bent admin
if($_SESSION['b_admin'] == '1')
{
echo '<tr>'."\n";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?m='.$_GET['m'].'&action=delete&gr_id='.$rowGroep['gr_id'].'"><img src="images/action_delete.gif" border="0" alt="verwijder"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?m='.$_GET['m'].'&action=edit&gr_id='.$rowGroep['gr_id'].'#blok'.$jj.'" target="_self"><img src="images/reply.gif" border="0" alt="aanpassen"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><img src="images/file.gif" border="0" alt="verwijder"></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?action=usertoGroep&gr_id='.$rowGroep['gr_id'].'" target="_self"><img src="images/user.gif" border="0" alt="gebruiker aan groep"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><strong>'.$jj.'</strong></td>';
echo '<td width="500" class="normalRow"> <a href="ifrGroep.php?gr_id='.$rowGroep["gr_id"].'" target="_self">'.$rowGroep["gr_naam"].'</a></strong></td>'."\n";
echo '</tr>'."\n";
}
elseif($resultGr)
{
while($rowGr = mysql_fetch_array($resultGr))
{
if($rowGr['gr_id'] == $rowGroep['gr_id'])
{
//optie 2: geen admin maar wil lid van de groep
echo '<tr>'."\n";
echo '<td width="22" class="normalRow" align="center"><img src="images/action_delete_bw.gif" border="0" alt="geen toegang"></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?m='.$_GET['m'].'&action=edit&gr_id='.$rowGroep['gr_id'].'#blok'.$jj.'" target="_self"><img src="images/reply.gif" border="0" alt="aanpassen"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><img src="images/file.gif" border="0" alt="verwijder"></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?action=usertoGroep&gr_id='.$rowGroep['gr_id'].'" target="_self"><img src="images/user.gif" border="0" alt="gebruiker aan groep"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><strong>'.$jj.'</strong></td>';
echo '<td width="500" class="normalRow"> <a href="ifrGroep.php?gr_id='.$rowGroep["gr_id"].'" target="_self">'.$rowGroep["gr_naam"].'</a></strong></td>'."\n";
echo '</tr>'."\n";
}
else
{
//optie 3: zowel géén admin, als géén lid van de groep
echo '<tr>'."\n";
echo '<td width="22"></td>';
echo '<td width="22"></td>';
echo '<td width="22"></td>';
echo '<td width="22"></td>';
echo '<td width="22" class="normalRow" align="center"><strong>'.$jj.'</strong></td>';
echo '<td width="500" class="normalRow"> <a href="ifrGroep.php?gr_id='.$rowGroep["gr_id"].'" target="_self">'.$rowGroep["gr_naam"].'</a></strong></td>'."\n";
echo '</tr>'."\n";
}
}
}
?>
else
{
$queryGr = "SELECT * FROM bureaugroep, groep WHERE bureaugroep.b_id ".$_SESSION['id']." AND bureaugroep.gr_id = groep.gr_id ORDER BY bureaugroep.gr_id DESC";
$resultGr = mysql_query($queryGr) or die("SQL_Fout | " . mysql_error());
//optie 1: je bent admin
if($_SESSION['b_admin'] == '1')
{
echo '<tr>'."\n";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?m='.$_GET['m'].'&action=delete&gr_id='.$rowGroep['gr_id'].'"><img src="images/action_delete.gif" border="0" alt="verwijder"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?m='.$_GET['m'].'&action=edit&gr_id='.$rowGroep['gr_id'].'#blok'.$jj.'" target="_self"><img src="images/reply.gif" border="0" alt="aanpassen"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><img src="images/file.gif" border="0" alt="verwijder"></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?action=usertoGroep&gr_id='.$rowGroep['gr_id'].'" target="_self"><img src="images/user.gif" border="0" alt="gebruiker aan groep"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><strong>'.$jj.'</strong></td>';
echo '<td width="500" class="normalRow"> <a href="ifrGroep.php?gr_id='.$rowGroep["gr_id"].'" target="_self">'.$rowGroep["gr_naam"].'</a></strong></td>'."\n";
echo '</tr>'."\n";
}
elseif($resultGr)
{
while($rowGr = mysql_fetch_array($resultGr))
{
if($rowGr['gr_id'] == $rowGroep['gr_id'])
{
//optie 2: geen admin maar wil lid van de groep
echo '<tr>'."\n";
echo '<td width="22" class="normalRow" align="center"><img src="images/action_delete_bw.gif" border="0" alt="geen toegang"></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?m='.$_GET['m'].'&action=edit&gr_id='.$rowGroep['gr_id'].'#blok'.$jj.'" target="_self"><img src="images/reply.gif" border="0" alt="aanpassen"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><img src="images/file.gif" border="0" alt="verwijder"></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><a href="ifrGroepen.php?action=usertoGroep&gr_id='.$rowGroep['gr_id'].'" target="_self"><img src="images/user.gif" border="0" alt="gebruiker aan groep"></a></td>'."\n\t\t\t";
echo '<td width="22" class="normalRow" align="center"><strong>'.$jj.'</strong></td>';
echo '<td width="500" class="normalRow"> <a href="ifrGroep.php?gr_id='.$rowGroep["gr_id"].'" target="_self">'.$rowGroep["gr_naam"].'</a></strong></td>'."\n";
echo '</tr>'."\n";
}
else
{
//optie 3: zowel géén admin, als géén lid van de groep
echo '<tr>'."\n";
echo '<td width="22"></td>';
echo '<td width="22"></td>';
echo '<td width="22"></td>';
echo '<td width="22"></td>';
echo '<td width="22" class="normalRow" align="center"><strong>'.$jj.'</strong></td>';
echo '<td width="500" class="normalRow"> <a href="ifrGroep.php?gr_id='.$rowGroep["gr_id"].'" target="_self">'.$rowGroep["gr_naam"].'</a></strong></td>'."\n";
echo '</tr>'."\n";
}
}
}
?>
Zoek een op join en distinct. In een van beide zit vast het probleem