query haalt geen gegevens op

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas minke

thomas minke

24/10/2006 09:46:00
Quote Anchor link
dit is mijn home.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>
"
;

?>


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
 
PHP hulp

PHP hulp

05/05/2024 09:44:00
 
- wes  -

- wes -

24/10/2006 09:47:00
Quote Anchor link
echo '<br>
<table border="0">
<tr><td>'.$_SESSION['gebruikersnaam'].'</td><td>
</td></tr>
<tr><td>'.$res['voornaam'].'</td><td>
</td></tr>
</table>';
 
Thomas minke

thomas minke

24/10/2006 09:49:00
Quote Anchor link
ik wist dat daar iets mis was met die quotes maar als ik die er tussen deed kreeg ik gelijk een Parse Error

hij doet het nog steeds niet en ik krijg ook geen enkele melding
 
- SanThe -

- SanThe -

24/10/2006 09:59:00
Quote Anchor link
Doe
echo mysql_num_rows($gegevens);
en je ziet of ie iets heeft gevonden.
 
Thomas minke

thomas minke

24/10/2006 10:21:00
Quote Anchor link
uhm ik heb zelf wat 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?
 
Klaasjan Boven

Klaasjan Boven

24/10/2006 10:55:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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());
 
Thomas minke

thomas minke

24/10/2006 12:14:00
Quote Anchor link
als ik bij mijn eigen account crew_id en club_id NULL maakt is
mysql_num_rows weer 0 :(
 
Joren de Wit

Joren de Wit

24/10/2006 13:09:00
Quote Anchor link
Als ik het goed begrijp wil je alle gegevens van een gebruiker selecteren ongeacht of ze een club_id en/of crew_id hebben. En mochten zo'n id hebben, dan wil je ook de naam van de club of crew hebben?

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)
PHP script in nieuw venster Selecteer het PHP script
1
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."'


Edit:
typo in query
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Thomas minke

thomas minke

24/10/2006 13:16:00
Quote Anchor link
klinkt goed, maar wat doet LEFT JOIN precies?

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
 
Joren de Wit

Joren de Wit

24/10/2006 13:20:00
Quote Anchor link
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 de pagina voor wat uitleg over joins.

Wat betreft de error: er stond nog een komma teveel. Aangepast in vorige post.
 
Thomas minke

thomas minke

24/10/2006 13:26:00
Quote Anchor link
perfect heel erg bedankt :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.