Hallo,
ich hab zwar bisher jedes Problem das ich hatte über die Suche lösen können aber jetzt is endgültig aus.
Ich habe so ne Art Partyplaner in der sich die User meiner Seite eintragen können. Dazu kommt noch das die einzelnen User in Gruppen Organisiert sind. Ein User sieht eine Party wenn er entweder in einer Gruppe ist die der Party zugeordnet ist oder die Party im Feld 'Public' eine 1 hat.
Bisher hab ich das einfach immer so gelöst das ich zwei Tabellen ausgegeben hab. Einmal die Partys mit 'Public' = 1 und einmal mit den Partys die sich über die Gruppen ergeben. Aber jetzt brauch ich beides in einer Tabelle.
Hier mal die Tabellen:
partys: Id, Titel, ...
show_to_group: Eintrag (Id von partys), Group_id (Id der Gruppe)
user_to_groups: User_id (Id von User), Group_id (Id der Gruppe)
Hier mal meine bisherigen Abfragen: Zuerst die 'Public'
PHP:
SELECT Id, Beginn, Titel, DATE_FORMAT(partys.Beginn, '%d.%m.%Y %H:%i') AS Datum, DATE_FORMAT(partys.Beginn, '%W') AS Tag FROM partys
WHERE Beginn >= CURDATE() AND Beginn <= ADDDATE(CURDATE(), INTERVAL 31 DAY) AND Public = 1
ORDER BY Beginn LIMIT 5
Und jetzt die mit der Gruppenabfrage:
PHP:
SELECT Id, Beginn, Titel, DATE_FORMAT(partys.Beginn, '%d.%m.%Y %H:%i') AS Datum, DATE_FORMAT(partys.Beginn, '%W') AS Tag FROM partys
INNER JOIN show_to_group ON CONCAT('prt',partys.Id) = show_to_group.Eintrag
INNER JOIN user_to_groups ON user_to_groups.Group_id = show_to_group.Group_id
WHERE user_to_groups.User_id = '$user_id' AND Beginn >= CURDATE() AND Beginn <= ADDDATE(CURDATE(), INTERVAL 31 DAY)
GROUP BY Id ORDER BY Beginn LIMIT 5
Wär super wenn ihr da ne Löung wissen würdet. Vielen Dank schon mal.
Zuletzt bearbeitet von einem Moderator: