overzicht verkrijgen vanuit 2 tabellen
De tabel tblGenre geeft de verschillende genres weer; met dus IDGenre als hoofdindex.
De tabel tblArtiest heeft eveneens een rij IDGenre met een numerieke waarde; die dus wijst naar tblGenre.
Nu wil ik op 1 pagina een volledig overzicht van alle artiesten; met hun Genre.
Ik weet niet hoe ik dit best kan aanpakken. Als ik een query maak van beide tabellen; bekom ik als resultaat dat ik enkel de eerste artiest zie; in meervoud als het aantal rijen.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$query_rsGenre = "SELECT * FROM tblArtiest, tblGenre WHERE tblArtiest.IDGenre = tblGenre.IDGenre";
$rsGenre = mysql_query($query_rsGenre, $######) or die(mysql_error());
$row_rsGenre = mysql_fetch_assoc($rsGenre);
$totalRows_rsGenre = mysql_num_rows($rsGenre);
?>
$query_rsGenre = "SELECT * FROM tblArtiest, tblGenre WHERE tblArtiest.IDGenre = tblGenre.IDGenre";
$rsGenre = mysql_query($query_rsGenre, $######) or die(mysql_error());
$row_rsGenre = mysql_fetch_assoc($rsGenre);
$totalRows_rsGenre = mysql_num_rows($rsGenre);
?>
Ik heb ook geprutst om het via een array te doen, maar dit lukte me niet.
Kan er iemand mij helpen; kben nieuw in PHP maar ik leer elke dag bij; gelukkig pfff.
Het is wel gelukt als er specifiek 1 artiest is gekozen, maar een overzicht van alle artiesten met hun respectievelijke genre lukt me niet.
Gewijzigd op 01/01/1970 01:00:00 door DeZond
Doe eens een GROUP BY met het veld van je ariest id (ik weet niet welke dat is)
Khad ook gezoch achter een JOIN ?
Ik zoek het volgende; uit eigenlijk drie tabellen.
tblArtiest
ID
Naam
IDGenre
IDTaal
tblGenre
IDGenre
Genre
tblTaal
IDTaal
Taal
Een volledige overzicht van alle artiesten
naamvanartiest1 genre taal
naamvanartiest2 genre taal
naamvanartiest3 genre taal
naamvanartiest4 genre taal
enzoverder....
wie kan mij helpen aub ?
Ik zou kijken naar een LEFT JOIN zodat je ook artiesten ophaalt waaraan geen genre of taal gekoppeld is:
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
<?php
$sql = "
SELECT a.Naam, g.Genre, t.Taal
FROM tblArtiest AS a
LEFT JOIN tblGenre AS g
ON g.IDGenre = a.IDGenre
LEFT JOIN tblTaal AS t
ON t.IDTaal = a.IDTaal
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error());
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo $row['Naam'].' '.$row['Genre'].' '.$row['Taal'].'<br>';
}
}
?>
$sql = "
SELECT a.Naam, g.Genre, t.Taal
FROM tblArtiest AS a
LEFT JOIN tblGenre AS g
ON g.IDGenre = a.IDGenre
LEFT JOIN tblTaal AS t
ON t.IDTaal = a.IDTaal
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error());
}
else
{
while($row = mysql_fetch_assoc($res))
{
echo $row['Naam'].' '.$row['Genre'].' '.$row['Taal'].'<br>';
}
}
?>
Nu wil ik op elke naam een link leggen met als detail-parameter: IDArtiest
dus de link profile.php?IDArtiest="hier komt de output van IDArtiest".
De vraag is: hoe krijg ik de juiste IDArtiest van de respectievelijk Artiest uit de join ?
Moet ik enkel dan a.IDArtiest bijvoegen ?
Ik heb het geprobeerd, en het werkt. Is dit een goede oplossing?
Dat is een prima oplossing.