query haalt geen gegevens op
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
session_start();
error_reporting(E_ALL);
include('databaseconnectie.php');
echo"<link href='style.css' style='text/css' rel='stylesheet'>
<body>
";
$gebruikersnaam = $_SESSION['gebruikersnaam'];
$gegevens = mysql_query("
SELECT
g.gebruikersnaam,
g.club_id,
g.crew_id,
g.voornaam,
g.achternaam,
g.gebruiker_id,
g.staff_level,
g.site_level,
cr.crew_id,
cr.crew_naam,
cl.club_id,
cl.club_naam
FROM
gebruikers AS g,
crews AS cr,
clubs AS cl
WHERE
g.club_id = cl.club_id AND
g.crew_id = cr.crew_id AND
g.gebruikersnaam = '".$gebruikersnaam."'
")or die(mysql_error());
$res = mysql_fetch_assoc($gegevens);
echo"
<br>
<table border=0>
<tr><td>$_SESSION[gebruikersnaam]</td><td>
</td></tr>
<tr><td>$res[voornaam]</td><td>
</td></tr>
</table>
";
?>
session_start();
error_reporting(E_ALL);
include('databaseconnectie.php');
echo"<link href='style.css' style='text/css' rel='stylesheet'>
<body>
";
$gebruikersnaam = $_SESSION['gebruikersnaam'];
$gegevens = mysql_query("
SELECT
g.gebruikersnaam,
g.club_id,
g.crew_id,
g.voornaam,
g.achternaam,
g.gebruiker_id,
g.staff_level,
g.site_level,
cr.crew_id,
cr.crew_naam,
cl.club_id,
cl.club_naam
FROM
gebruikers AS g,
crews AS cr,
clubs AS cl
WHERE
g.club_id = cl.club_id AND
g.crew_id = cr.crew_id AND
g.gebruikersnaam = '".$gebruikersnaam."'
")or die(mysql_error());
$res = mysql_fetch_assoc($gegevens);
echo"
<br>
<table border=0>
<tr><td>$_SESSION[gebruikersnaam]</td><td>
</td></tr>
<tr><td>$res[voornaam]</td><td>
</td></tr>
</table>
";
?>
het enige dat ik te zien krijg is mijn sessie['gebruikersnaam'] , wat ik ook probeer te echo'en
iemand een ideetje?
Gewijzigd op 01/01/1970 01:00:00 door Thomas minke
<table border="0">
<tr><td>'.$_SESSION['gebruikersnaam'].'</td><td>
</td></tr>
<tr><td>'.$res['voornaam'].'</td><td>
</td></tr>
</table>';
hij doet het nog steeds niet en ik krijg ook geen enkele melding
echo mysql_num_rows($gegevens);
en je ziet of ie iets heeft gevonden.
ik had in de tabel CREWS geen rij die overeen kwam.
maar dat zou betekenen dat elke gebruiker waarvan de g.crew_id of g.club_id NULL is, niets zou zien.
hoe kan ik dat dan oplossen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT
g.gebruikersnaam,
g.club_id,
g.crew_id,
g.voornaam,
g.achternaam,
g.gebruiker_id,
g.staff_level,
g.site_level,
cr.crew_id,
cr.crew_naam,
cl.club_id,
cl.club_naam
FROM
gebruikers AS g,
crews AS cr,
clubs AS cl
WHERE
(g.club_id = cl.club_id OR g.club=NULL) AND
(g.crew_id = cr.crew_id OR g.crew_id=NULL )AND
g.gebruikersnaam = '".$gebruikersnaam."'
")or die(mysql_error());
g.gebruikersnaam,
g.club_id,
g.crew_id,
g.voornaam,
g.achternaam,
g.gebruiker_id,
g.staff_level,
g.site_level,
cr.crew_id,
cr.crew_naam,
cl.club_id,
cl.club_naam
FROM
gebruikers AS g,
crews AS cr,
clubs AS cl
WHERE
(g.club_id = cl.club_id OR g.club=NULL) AND
(g.crew_id = cr.crew_id OR g.crew_id=NULL )AND
g.gebruikersnaam = '".$gebruikersnaam."'
")or die(mysql_error());
mysql_num_rows weer 0 :(
Dat lijkt me een uitermate geschikt voorbeeld voor een LEFT JOIN. Het is niet getest, maar ik neem aan de volgende query zal werken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT
g.gebruikersnaam,
g.club_id,
g.crew_id,
g.voornaam,
g.achternaam,
g.gebruiker_id,
g.staff_level,
g.site_level,
cr.crew_id,
cr.crew_naam,
cl.club_id,
cl.club_naam
FROM
gebruikers AS g
LEFT JOIN crews AS cr
ON g.crew_id = cr.crew_id
LEFT JOIN clubs AS cl
ON g.club_id = cl.club_id
WHERE
g.gebruikersnaam = '".$gebruikersnaam."'
g.gebruikersnaam,
g.club_id,
g.crew_id,
g.voornaam,
g.achternaam,
g.gebruiker_id,
g.staff_level,
g.site_level,
cr.crew_id,
cr.crew_naam,
cl.club_id,
cl.club_naam
FROM
gebruikers AS g
LEFT JOIN crews AS cr
ON g.crew_id = cr.crew_id
LEFT JOIN clubs AS cl
ON g.club_id = cl.club_id
WHERE
g.gebruikersnaam = '".$gebruikersnaam."'
Edit:
typo in query
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN crews AS cr ON g.crew_id = cr.crew_id LEFT JOIN
de pagina voor wat uitleg over joins.
Wat betreft de error: er stond nog een komma teveel. Aangepast in vorige post.
Een LEFT JOIN haalt alle resultaten uit de eerste tabel op ook als er geen matches zijn met een 2e tabel. Als er wel matches zijn met de 2e tabel worden ook die gegevens opgehaald, anders wordt er voor die velden NULL teruggegeven. Zie ook Wat betreft de error: er stond nog een komma teveel. Aangepast in vorige post.
perfect heel erg bedankt :)