Saa er jeg med igen.
Jeg ved ikke hvor meget du kender til PHP. En normal fremgangsmaade er foerst at stille queryen ($result = mysql_query("SELECT ...."), derefter at tage resultatet ud raekke for raekke ved (while($row = mysql_fetch_array($result)) echo $row['titel'] . ", " . $row['forfatternavn'] . ", " $row['aargang']) o.s.v.
Men paa den maade faar du en output linie for hver query-resultat-raekke, altsaa for hver kombination af titel og forfatter. Det var ikke det du ville have. Hvad jeg derfor har gjort er dette:
Hvis titlen er den samme som titlen i den foregaaende raekke skriver jeg det nye forfatternavn paa den bestaaende output linie. Hvis titlen har aendret sig laver jeg en ny output linie og skriver titel, aargang, forfatter, o.s.v.
Af dovenskab har jeg placeret forfatternavnet/navnene til sidst, og jeg ignorerede muligheden for at en bog ogsaa kunne have mere end en titel, men ved at udvide eksemplet kan det ogsaa lade sig goere.
For at teste min kode oprettede jeg tabellerne og fyldte nogle vaerdier i. Mit PHP output var dette. Jeg haaber det svarer til hvad du er ude efter. Hvis ikke, saa har jeg ikke forstaaet dig og du maa forklare yderligere.
Titel: titel1, Aargang: 2001, Forlag: forlag1, Emne: emnenavn2, ISBN: isbn1, Forfattere: forfatter1, forfatter2, forfatter3
Titel: titel2, Aargang: 2002, Forlag: forlag2, Emne: emnenavn2, ISBN: isbn2, Forfattere: forfatter3
Titel: titel3, Aargang: 2003, Forlag: forlag3, Emne: emnenavn1, ISBN: isbn3, Forfattere: forfatter3
Her er min kode (med connection- og password details skjult):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd"><html>
<head>
<title></title>
</head>
<body>
<?
$link = mysql_connect ('xxxx', 'yyyy', 'zzzz') or die(mysql_erorr());
mysql_select_db('qqqq') or die('Could not select database');
$result = mysql_query("SELECT titel, forfatternavn, aargang, forlag, emnenavn, isbn
FROM bog b
JOIN forfatterbog fb ON b.id = fb.bog_id
JOIN forfatter f ON fb.forfatter_id = f.id
JOIN emnebog eb ON b.id = eb.bog_id
JOIN emne e ON eb.emne_id = e.id
ORDER BY titel, forfatternavn
");
$titel = "";
while($row = mysql_fetch_array($result))
{
if($row['titel'] <> $titel)
{
$titel = $row['titel'];
echo "<br/>Titel: " . $row['titel'] . ", Aargang: " . $row['aargang'] . ", Forlag: " . $row['forlag'] . ", Emne: " . $row['emnenavn'] . ", ISBN: " . $row['isbn'] . ", Forfattere: " . $row['forfatternavn'];
}
else echo ", " . $row['forfatternavn'];
}
mysql_close($link);
?>
</body>