Gebruiker in meerdere groepen
Ik probeer gebruikersgroepen te maken, echter lukt dit niet helemaal.
tabel: gebruikersgroepen
- gebruikersgroep_id
- groepsnaam
tabel: gebruikers
- gebruiker_id
- gebruikersgroep_id
- voornaam
- achternaam
Nu heb ik een gebruiker met:
gebruiker_id = 1
gebruikersgroep_id = 1,3 (zit in meerdere groepen)
voornaam = dennis
Hoe maak ik nu een query dat ik deze gebruiker in meerdere groepen kan indelen?
ik begin zo:
Code (php)
1
2
2
$query_gebruikers = "SELECT gebruikersgroep_id, voornaam, achternaam FROM gebruikers";
$resultaat_gebruikers = mysql_query($query_gebruikers, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
$resultaat_gebruikers = mysql_query($query_gebruikers, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
Hier haal ik de gebruikers op
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
while($rij_gebruikers = mysql_fetch_array($resultaat_gebruikers)){
$counter++;
$pieces = explode(",", $rij_gebruikers['gebruikersgroep_id']);
echo "size of array = ".sizeof($pieces)."<br>"; // Output = 5
$query_gebruikersgroepen = "SELECT gebruikersgroep_id, groepsnaam FROM gebruikersgroepen WHERE gebruikersgroep_id = '" . $pieces[0] . "'";
$resultaat_gebruikersgroepen = mysql_query($query_gebruikersgroepen, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_gebruikersgroepen . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
}
$counter++;
$pieces = explode(",", $rij_gebruikers['gebruikersgroep_id']);
echo "size of array = ".sizeof($pieces)."<br>"; // Output = 5
$query_gebruikersgroepen = "SELECT gebruikersgroep_id, groepsnaam FROM gebruikersgroepen WHERE gebruikersgroep_id = '" . $pieces[0] . "'";
$resultaat_gebruikersgroepen = mysql_query($query_gebruikersgroepen, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_gebruikersgroepen . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
}
Ik had het idee om de gebruiker id's te exploden op een komma, zodat ik een array heb, maar nu moet ik dat dus op 1 of andere manier gaan koppelen aan die gebruikergroepen om vervolgens uit te lezen dan Dennis in groep 1 en groep 3 zit.
Kan iemand me op weg helpen?
Toevoeging op 31/08/2011 17:10:23:
Oke ik heb een oplossing, is dit echt de simpelste manier?
Ik post hier mijn hele bestand. Naar mijn mening beetje veel queries, maar ik kon even niet zo snel iets anders bedenken
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
include('includes/application_top.php');
# unieke gebruiker opzoeken in koppeltabel
$query_zoek_gebruiker_in_groep = "SELECT DISTINCT gebruiker_id FROM gebruikers_naar_groepen";
$resultaat_zoek_gebruiker_in_groep = mysql_query($query_zoek_gebruiker_in_groep, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_zoek_gebruiker_in_groep . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>simpel CMS demo.</title>
<?php include('includes/head.php'); ?>
</head>
<body>
<?php include('includes/template_top.php'); ?>
<div class="box">
<div class="box_top"><h2>Accounts</h2></div>
<div class="box_content">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr class="heading">
<td width="150">gebruikers_id</td>
<td width="150">gebruikers_id2</td>
<td colspan="2"></td>
</tr>
<?php
echo "\n";
$counter = 0;
while($rij_zoek_gebruiker_in_groep = mysql_fetch_array($resultaat_zoek_gebruiker_in_groep)){
$counter++;
# vervolgens naam koppelen aan gebruiker
$query_gebruikers = "SELECT voornaam FROM gebruikers WHERE gebruiker_id = '" . $rij_zoek_gebruiker_in_groep['gebruiker_id'] . "'";
$resultaat_gebruikers = mysql_query($query_gebruikers, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_gebruikers . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
$rij_gebruikers = mysql_fetch_array($resultaat_gebruikers);
?>
<tr <?php echo ($counter % 2 == 0 ? 'class="even"' : 'class="oneven"') ;?>>
<td><?php echo $rij_gebruikers['voornaam']; ?></td>
<td>
<?php
# groep koppelen aan opgezochte gebruiker
$query_zoek_groep_bij_gebruiker = "SELECT gebruikersgroep_id FROM gebruikers_naar_groepen WHERE gebruiker_id = '" . $rij_zoek_gebruiker_in_groep['gebruiker_id'] . "'";
$resultaat_zoek_groep_bij_gebruiker = mysql_query($query_zoek_groep_bij_gebruiker, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_gebruikersgroepen . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
while($rij_zoek_groep_bij_gebruiker = mysql_fetch_array($resultaat_zoek_groep_bij_gebruiker)){
# groepsnaam koppelen aan opgezochte groep
$query_gebruikersgroepen = "SELECT groepsnaam FROM gebruikersgroepen WHERE gebruikersgroep_id = '" . $rij_zoek_groep_bij_gebruiker['gebruikersgroep_id'] . "'";
$resultaat_gebruikersgroepen = mysql_query($query_gebruikersgroepen, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_gebruikers . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
$rij_gebruikersgroepen = mysql_fetch_array($resultaat_gebruikersgroepen);
echo $rij_gebruikersgroepen['groepsnaam'] . ', ';
}
?>
</td>
<td width="25"><a class="edit" href="#"></a></td>
<td width="25"><a class="delete" href="#"></a></td>
</tr>
<?php
}
echo "\n";
?>
</table>
</div>
</div>
<?php include('includes/template_bottom.php'); ?>
</body>
</html>
include('includes/application_top.php');
# unieke gebruiker opzoeken in koppeltabel
$query_zoek_gebruiker_in_groep = "SELECT DISTINCT gebruiker_id FROM gebruikers_naar_groepen";
$resultaat_zoek_gebruiker_in_groep = mysql_query($query_zoek_gebruiker_in_groep, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_zoek_gebruiker_in_groep . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>simpel CMS demo.</title>
<?php include('includes/head.php'); ?>
</head>
<body>
<?php include('includes/template_top.php'); ?>
<div class="box">
<div class="box_top"><h2>Accounts</h2></div>
<div class="box_content">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr class="heading">
<td width="150">gebruikers_id</td>
<td width="150">gebruikers_id2</td>
<td colspan="2"></td>
</tr>
<?php
echo "\n";
$counter = 0;
while($rij_zoek_gebruiker_in_groep = mysql_fetch_array($resultaat_zoek_gebruiker_in_groep)){
$counter++;
# vervolgens naam koppelen aan gebruiker
$query_gebruikers = "SELECT voornaam FROM gebruikers WHERE gebruiker_id = '" . $rij_zoek_gebruiker_in_groep['gebruiker_id'] . "'";
$resultaat_gebruikers = mysql_query($query_gebruikers, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_gebruikers . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
$rij_gebruikers = mysql_fetch_array($resultaat_gebruikers);
?>
<tr <?php echo ($counter % 2 == 0 ? 'class="even"' : 'class="oneven"') ;?>>
<td><?php echo $rij_gebruikers['voornaam']; ?></td>
<td>
<?php
# groep koppelen aan opgezochte gebruiker
$query_zoek_groep_bij_gebruiker = "SELECT gebruikersgroep_id FROM gebruikers_naar_groepen WHERE gebruiker_id = '" . $rij_zoek_gebruiker_in_groep['gebruiker_id'] . "'";
$resultaat_zoek_groep_bij_gebruiker = mysql_query($query_zoek_groep_bij_gebruiker, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_gebruikersgroepen . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
while($rij_zoek_groep_bij_gebruiker = mysql_fetch_array($resultaat_zoek_groep_bij_gebruiker)){
# groepsnaam koppelen aan opgezochte groep
$query_gebruikersgroepen = "SELECT groepsnaam FROM gebruikersgroepen WHERE gebruikersgroep_id = '" . $rij_zoek_groep_bij_gebruiker['gebruikersgroep_id'] . "'";
$resultaat_gebruikersgroepen = mysql_query($query_gebruikersgroepen, $verbindDatabase) or die("A MySQL error has occurred.<br />Your Query: " . $query_gebruikers . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
$rij_gebruikersgroepen = mysql_fetch_array($resultaat_gebruikersgroepen);
echo $rij_gebruikersgroepen['groepsnaam'] . ', ';
}
?>
</td>
<td width="25"><a class="edit" href="#"></a></td>
<td width="25"><a class="delete" href="#"></a></td>
</tr>
<?php
}
echo "\n";
?>
</table>
</div>
</div>
<?php include('includes/template_bottom.php'); ?>
</body>
</html>
Gewijzigd op 31/08/2011 14:31:00 door Pong Zor
Er zijn nog geen reacties op dit bericht.