breaker
10.11.2009, 13:18
Moin :)
Heute komme ich mal wieder mit einem speziellen Problem :D
Ich habe 3 Tabellen:
1. Tabelle: kategorien
2. Tabelle: aktion
2. Tabelle: user
Jetzt will ich alle Einträge aus "kategorien" auslesen, passen dazu die Anzahl der Aktionen, welche zu der Kategorie gehören...und passend dazu die Anzahl der Teilnahmen (aktuelle User-ID).
Wenn der User nicht Teilgenommen hat, stimmt alles, aber sobald der User > 3 x teilgenommen hat, erhöht sich jedesmal die Anzahl der Teilnahmen (was ja auch richtig ist) und die Anzahl der Aktionen in dieser Kat (welches falsch ist)
So sieht das ganze aus:
$this->date_db ist das aktuelle datum in US (mysql)-Format
$uid ist die aktuelle User-ID
$sql1 = $this->db->sql_query("SELECT
kat.*,
bo.*,
COUNT(bo.kat_id) AS aktionen_in_kat,
COUNT(teil.k_code) AS user_teilgenommen
FROM " . $this->db->prefix . "_pwc_aktion_kat AS kat
LEFT JOIN " . $this->db->prefix . "_pwc_aktion AS bo
ON (kat.kat_id = bo.kat_id)
AND (bo.k_start < '" . $this->date_db . "')
AND (bo.k_ende > '" . $this->date_db . "')
AND (kat.kat_status = bo.k_status)
AND (kat.kat_status = 1)
LEFT JOIN " . $this->db->prefix . "_pwc_aktion_teilnahmen AS teil
ON (teil.k_code = bo.k_code)
AND (teil.k_user_id = '" . intval($uid) . "')
GROUP BY kat.kat_name
ORDER BY kat.kat_name ASC");
Wenn ich jetzt die Query der Teilnahmen ausbaue, stimmt alles wieder.....vielleicht findet ja von euch einer den Fehler ;)
Heute komme ich mal wieder mit einem speziellen Problem :D
Ich habe 3 Tabellen:
1. Tabelle: kategorien
2. Tabelle: aktion
2. Tabelle: user
Jetzt will ich alle Einträge aus "kategorien" auslesen, passen dazu die Anzahl der Aktionen, welche zu der Kategorie gehören...und passend dazu die Anzahl der Teilnahmen (aktuelle User-ID).
Wenn der User nicht Teilgenommen hat, stimmt alles, aber sobald der User > 3 x teilgenommen hat, erhöht sich jedesmal die Anzahl der Teilnahmen (was ja auch richtig ist) und die Anzahl der Aktionen in dieser Kat (welches falsch ist)
So sieht das ganze aus:
$this->date_db ist das aktuelle datum in US (mysql)-Format
$uid ist die aktuelle User-ID
$sql1 = $this->db->sql_query("SELECT
kat.*,
bo.*,
COUNT(bo.kat_id) AS aktionen_in_kat,
COUNT(teil.k_code) AS user_teilgenommen
FROM " . $this->db->prefix . "_pwc_aktion_kat AS kat
LEFT JOIN " . $this->db->prefix . "_pwc_aktion AS bo
ON (kat.kat_id = bo.kat_id)
AND (bo.k_start < '" . $this->date_db . "')
AND (bo.k_ende > '" . $this->date_db . "')
AND (kat.kat_status = bo.k_status)
AND (kat.kat_status = 1)
LEFT JOIN " . $this->db->prefix . "_pwc_aktion_teilnahmen AS teil
ON (teil.k_code = bo.k_code)
AND (teil.k_user_id = '" . intval($uid) . "')
GROUP BY kat.kat_name
ORDER BY kat.kat_name ASC");
Wenn ich jetzt die Query der Teilnahmen ausbaue, stimmt alles wieder.....vielleicht findet ja von euch einer den Fehler ;)