Vraag over JOINS
Ik heb een vraag naar aanleiding van de tutorial over Multiple queries.
Ik wil dit zo ongeveer krijgen.
wedstrijden
-id
-thuis
-uit
-datum
-seizoen
-uitslag
nu ben ik wat gaan normaliseren.
tabel->wedstrijden
-id
-thuisid
-uitid
-datum
-seizoenid
-uitslag
Nu loop ik een beetje vast. Als ik namelijk een tabel met clubs aanmaak dan heb ik geen idee hoe ik de database moet uitlezen (wel een idee maar werkte niet)
ik heb het nu zo (werkt niet)
table ->clubs
-id
-naam
Nu heb ik het volgende stukje script om de wedstrijden te verkrijgen
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
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
<?php
include("connect.php");
$select01 = "SELECT
we.id,
cl.naam,
cl.naam,
we.datum,
se.jaar,
we.uitslag
FROM
wedstrijden AS we,
clubs AS cl,
seizoen AS se
WHERE
we.thuisid = cl.id
AND
we.uitid = cl.id
AND
we.seizoen_id = se.id
ORDER BY
we.id
ASC";
$query01 = mysql_query($select01) or die (mysql_error());
while($result01 = mysql_fetch_object($query01)){
echo $result01->naam.'<br />';
echo $result01->naam.'<br />';
echo $result01->datum.'<br />';
echo $result01->jaar.'<br />';
}
?>
include("connect.php");
$select01 = "SELECT
we.id,
cl.naam,
cl.naam,
we.datum,
se.jaar,
we.uitslag
FROM
wedstrijden AS we,
clubs AS cl,
seizoen AS se
WHERE
we.thuisid = cl.id
AND
we.uitid = cl.id
AND
we.seizoen_id = se.id
ORDER BY
we.id
ASC";
$query01 = mysql_query($select01) or die (mysql_error());
while($result01 = mysql_fetch_object($query01)){
echo $result01->naam.'<br />';
echo $result01->naam.'<br />';
echo $result01->datum.'<br />';
echo $result01->jaar.'<br />';
}
?>
Maar dit werkt niet omdat je 2x de variabele naam hebt.(vermoedt ik)
Heeft iemand een idee hoe dit wel goed kan/moet
Alvast bedankt voor de moeite
MVG, Remco
Gewijzigd op 01/01/1970 01:00:00 door Remco
waarom 2X naam?
cl.naam,
moet dat dan niet iets zijn in de trant van:
cl.naam
se.naam
??
Nee ik snap al wat hij wil. Er is altijd een uit en een thuisclub
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT
we.id AS wedstrijdnr,
cl_uit.naam AS uitclub,
cl_thuis.naam AS thuisclub,
we.datum AS wedstrijddatum,
se.jaar AS seizoen,
we.uitslag AS uitslag
FROM
wedstrijden AS we,
clubs AS cl_thuis,
clubs AS cl_uit,
seizoen AS se
WHERE
we.thuisid = cl_thuis.id
AND
we.uitid = cl_uit.id
AND
we.seizoen_id = se.id
ORDER BY
we.id
we.id AS wedstrijdnr,
cl_uit.naam AS uitclub,
cl_thuis.naam AS thuisclub,
we.datum AS wedstrijddatum,
se.jaar AS seizoen,
we.uitslag AS uitslag
FROM
wedstrijden AS we,
clubs AS cl_thuis,
clubs AS cl_uit,
seizoen AS se
WHERE
we.thuisid = cl_thuis.id
AND
we.uitid = cl_uit.id
AND
we.seizoen_id = se.id
ORDER BY
we.id
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Ja zo bedoelde ik het.
Dit werkt trouwens ook!!
Heel erg bedankt. Ik ga nu kijken of ik hier wat verder mee kom
Hier was ik zelf zeker niet opgekomen
Graag gedaan en kom je er niet uit dan gooi je maar weer een vraag op het forum
Ik heb al heel wat pagina's gemaakt op deze manier. Gaat allemaal goed maar nu kom ik bij een pagina waar ik even bij vast loop.
Ik wil namelijk een pagina maken met daarom filmpjes.
Ik heb de volgende tabellen (hier en daar wat stukken tabel die niet nodig zijn weg gelaten)
tabel: wedstrijden:
-id
-thuisid
-uitid
clubs
-id
-naam
filmpjes
-id
-wedstrid
-titel
Zo deze waarden heb ik zo ongeveer nodig
Het ophalen van deze gegevens gaat ook gewoon goed. Als ik de query in phpMyAdmin uitvoer krijg ik netjes twee rijen(worden meer) met daarin de volgende waarden
-thuis (elke keer hetzelfde)
-uit (idem als thuis)
-id (id van het filmpje is elke keer zo als het hoort anders)
-titel (de titel van het filmpje)
Nu wil ik hiervan een lijst maken van de verschillende filmpjes met daarboven 1x de thuis en uitclub.
Dit is mijn stukje code tot nu toe:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
elseif(isset($_GET['match']) && is_numeric($_GET['match']) == 'TRUE'){
$select02 = "SELECT
cl_thuis.naam AS thuis,
cl_uit.naam AS uit,
fi.id,
fi.titel
FROM
wedstrijden AS we,
clubs AS cl_thuis,
clubs AS cl_uit,
filmpjes AS fi
WHERE
we.thuisid = cl_thuis.id
AND
we.uitid = cl_uit.id
AND
we.id = fi.wedstrid
AND
we.id = '".$_GET['match']."'";
$query02 = mysql_query($select02);
$select02 = "SELECT
cl_thuis.naam AS thuis,
cl_uit.naam AS uit,
fi.id,
fi.titel
FROM
wedstrijden AS we,
clubs AS cl_thuis,
clubs AS cl_uit,
filmpjes AS fi
WHERE
we.thuisid = cl_thuis.id
AND
we.uitid = cl_uit.id
AND
we.id = fi.wedstrid
AND
we.id = '".$_GET['match']."'";
$query02 = mysql_query($select02);
Nu moeten deze gegevens worden verwerkt tot ongeveer het volgende:
Nu is mijn vraag kan dit met 1 query, zoals ik het nu heb, of moet ik hiervoor 2 query's aanmaken.
Ik heb zelf een vermoeden dat het met foreach wel moet kunnen maar hoe ik dat dan moet gebruiken is mij nog een raadsel.
Nu ben ik ook nog een n00b dus als iemand anders hier met zijn heldere blik een oplossing voor dit probleem vind zou die hem hier dan willen posten. Het kan ook gewoon een opzetje zijn om met foreach aan de slag te gaan.
iig alvast bedankt voor de moeite
MVG, Remco
niemand die een idee heeft?
Code (php)
Zelf even de waardes aanpassen.