Hallo,
ich komme mit einer mySQL-Abfrage nicht weiter, vielleicht könnt ihr mir einen Tipp geben, was ich falsch mache.
Aufgabe: ich sammle Musik-Gruppen aus einer Tabelle und die jeweils dazu hinterlegten Musik-Genres aus einer zweiten Tabelle. Die einzelnen Genres jeder Band werden durch das GROUP_CONCAT als Komma separierte Liste angezeigt.
Ausgabe:
http://vampster.com/genres/example_genres3.php
Die dazugehörige Abfrage:
(Bezeichnungen:
name: Bandname
band_id: Band ID
tag: Genre-Bezeichnung
naehe: Gewichtung -> 10 = niedrige Übereinstimmung von Band zu Genre, 100 = hohe Übereinstimmung.
aus der tabelle bands_master und dem LEFT JOIN hole ich den bandnamen passend zur band_id.)
Nun möchte ich aber gerne nach den Genres Filtern. Mein Ansatz geht leider nicht:
2. Abfrage:
Ausgabe (Beispiel):
http://vampster.com/genres/example_g...rnative%20rock
Es wird also nur das eine Genre angezeigt, nach dem ich in der URL filtere. Mein Ziel wäre, auch die anderen Genres angezeigt zu bekommen, wenn zur Band weitere Einträge vorhanden sind.
Kann mir jemand helfen?
Vielen Dank schonmal,
Markus
PS: Der Server läuft noch mit mySQL 4.1.25, falls das wichtig ist.
ich komme mit einer mySQL-Abfrage nicht weiter, vielleicht könnt ihr mir einen Tipp geben, was ich falsch mache.
Aufgabe: ich sammle Musik-Gruppen aus einer Tabelle und die jeweils dazu hinterlegten Musik-Genres aus einer zweiten Tabelle. Die einzelnen Genres jeder Band werden durch das GROUP_CONCAT als Komma separierte Liste angezeigt.
Ausgabe:
http://vampster.com/genres/example_genres3.php
Die dazugehörige Abfrage:
Code:
SELECT name, band_id, tag, naehe,GROUP_CONCAT(tag ORDER BY tag) FROM bands_tags LEFT JOIN bands_master ON bands_tags.band_id = id GROUP BY name ORDER BY name ASC,naehe DESC
name: Bandname
band_id: Band ID
tag: Genre-Bezeichnung
naehe: Gewichtung -> 10 = niedrige Übereinstimmung von Band zu Genre, 100 = hohe Übereinstimmung.
aus der tabelle bands_master und dem LEFT JOIN hole ich den bandnamen passend zur band_id.)
Nun möchte ich aber gerne nach den Genres Filtern. Mein Ansatz geht leider nicht:
2. Abfrage:
PHP-Code:
if (isset($genre)) {
$query = "SELECT name, band_id, tag, naehe,GROUP_CONCAT(tag ORDER BY tag)
FROM bands_tags LEFT JOIN bands_master ON bands_tags.band_id = id
WHERE tag =\"".$genre."\" GROUP BY name
ORDER BY name ASC,naehe DESC;";
}
http://vampster.com/genres/example_g...rnative%20rock
Es wird also nur das eine Genre angezeigt, nach dem ich in der URL filtere. Mein Ziel wäre, auch die anderen Genres angezeigt zu bekommen, wenn zur Band weitere Einträge vorhanden sind.
Kann mir jemand helfen?
Vielen Dank schonmal,
Markus
PS: Der Server läuft noch mit mySQL 4.1.25, falls das wichtig ist.
Kommentar