Ich bastel mir grade eine Gallerie.
Es soll in der Übersicht für jede Kategorie ein zufälliges Bild angezeigt werden - nur ich weiß nicht wie ich das in meinen Query einbauen kann.
Ich habe 2 Tabellen. Eine für die Kategorien mit den Spalten
id | title | date
und eine für die eigentlichen Bilder mit den Spalten
id | filename | cat_id
mein bisheriger Query sieht so aus:
Das Ergebnis sieht so aus:
Ich weiß, ich muss den Query noch erweitern, damit er mir den Dateinamen von einem Bild ausgibt:
Ergebnis:
Dort, wo jetzt testbild1.jpg steht, soll ein zufälliges bild aus der Tabelle img_images sein.
Wenn ich bei dem ORDER BY ein RAND() hinzufüge, ist die Übersicht jedoch nicht mehr nach Datum sortiert. Ich habe auch schon versucht in die Bedingung des JOINs das RAND() einzubauen, aber hat auch nicht geklappt.
Ist das überhaupt so möglich, wie ich mir das denke?
Es soll in der Übersicht für jede Kategorie ein zufälliges Bild angezeigt werden - nur ich weiß nicht wie ich das in meinen Query einbauen kann.
Ich habe 2 Tabellen. Eine für die Kategorien mit den Spalten
id | title | date
und eine für die eigentlichen Bilder mit den Spalten
id | filename | cat_id
mein bisheriger Query sieht so aus:
Code:
SELECT cat.*, COUNT(img.id) imgcount FROM img_categories cat LEFT JOIN img_images img ON (img.cat_id = cat.id) GROUP BY cat.id ORDER BY cat.date DESC
Code:
+----+-------------------+---------------------+----------+ | id | title | date | imgcount | +----+-------------------+---------------------+----------+ | 3 | Kategorie 3 | 2004-03-06 17:30:21 | 2 | | 2 | Kategorie 2 | 2004-03-06 16:42:04 | 0 | | 1 | Kategorie 1 | 2004-03-06 16:41:44 | 0 | +----+-------------------+---------------------+----------+
Code:
SELECT cat.*, COUNT(img.id) imgcount, img.filename FROM img_categories cat LEFT JOIN img_images img ON (img.cat_id = cat.id) GROUP BY cat.id ORDER BY cat.date DESC
Code:
+----+-------------------+---------------------+----------+---------------+ | id | title | date | imgcount | filename | +----+-------------------+---------------------+----------+---------------+ | 3 | Kategorie 3 | 2004-03-06 17:30:21 | 2 | testbild1.jpg | | 2 | Kategorie 2 | 2004-03-06 16:42:04 | 0 | NULL | | 1 | Kategorie 1 | 2004-03-06 16:41:44 | 0 | NULL | +----+-------------------+---------------------+----------+---------------+
Wenn ich bei dem ORDER BY ein RAND() hinzufüge, ist die Übersicht jedoch nicht mehr nach Datum sortiert. Ich habe auch schon versucht in die Bedingung des JOINs das RAND() einzubauen, aber hat auch nicht geklappt.
Ist das überhaupt so möglich, wie ich mir das denke?
Kommentar