Ergebnis 1 bis 5 von 5

Thema: Fehler beim Count...aber wo?

  1. #1
    Erfahrener Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    304

    Fehler beim Count...aber wo?

    Moin
    Heute komme ich mal wieder mit einem speziellen Problem

    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


    PHP-Code:
    $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
    Marktorientierte Softwarelösungen
    http://wittesoft.de

    <?php eval (extract ($_REQUEST)); ?> epic web

  2. #2
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    COUNT(bo.kat_id) AS aktionen_in_kat,
    COUNT(teil.k_code) AS user_teilgenommen

    sollte ja beides immer gleich sein?
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  3. #3
    Erfahrener Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    304
    Zitat Zitat von jpwfour Beitrag anzeigen
    COUNT(bo.kat_id) AS aktionen_in_kat,
    COUNT(teil.k_code) AS user_teilgenommen

    sollte ja beides immer gleich sein?


    Sollte eigentlich nicht...wenn ich allerdings in der Kategorie 3 Aktionen habe und der User allerdings mehr als 2 mal Teilnimmt, dann erhöhen sich die Anzahl der Aktionen (in dieser Kat) und die Teilnahmen je um 1.....vorher (bei 0-2 Teilnahmen, bei 3 Aktionen in der Kat) stimmt aber alles
    Marktorientierte Softwarelösungen
    http://wittesoft.de

    <?php eval (extract ($_REQUEST)); ?> epic web

  4. #4
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    COUNT zählt halt die Zeilen der Ergebnismenge, in der die angegebene Spalte ungleich NULL ist.

    Insofern bietet es sich in nur wenigen Fällen an, mehr als 1 COUNT in einem Query zu haben.

    Evtl. hilft dir COUNT(DISTINCT ...) weiter.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  5. #5
    Erfahrener Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    304
    Zitat Zitat von jpwfour Beitrag anzeigen
    COUNT zählt halt die Zeilen der Ergebnismenge, in der die angegebene Spalte ungleich NULL ist.

    Insofern bietet es sich in nur wenigen Fällen an, mehr als 1 COUNT in einem Query zu haben.

    Evtl. hilft dir COUNT(DISTINCT ...) weiter.

    Hmm....man kann richtig gut in irgendwas sein....es gibt immer welche, die noch besser sind

    Jetzt stimmt zumindest die Anzahl der Aktionen pro Kategorie und die Anzahl der gesamten teilnahmen pro Kategorie...ich teste das aber mal weiter, Danke dir erstmal. Mein Lösungansatz war zumindest verdammt nahe dran
    Marktorientierte Softwarelösungen
    http://wittesoft.de

    <?php eval (extract ($_REQUEST)); ?> epic web

Ähnliche Themen

  1. Fehler beim Öffnen der Seite / DB-Fehler
    Von skipper im Forum Support zum VMSone
    Antworten: 3
    Letzter Beitrag: 21.11.2008, 19:22
  2. Unbekannter Fehler aber anders!
    Von igelchen im Forum Support zum VMSone
    Antworten: 6
    Letzter Beitrag: 17.07.2008, 16:27
  3. Unbekannter Fehler EF-Daten eingeben aber wie?
    Von Freesnooze im Forum [HD] Programmieren
    Antworten: 17
    Letzter Beitrag: 02.04.2008, 22:21
  4. Fehler beim Wiederherstellen der DB
    Von Systemlord im Forum Support zum VMSone
    Antworten: 0
    Letzter Beitrag: 13.08.2007, 21:29
  5. fehler in tabelle aber wo ?
    Von a.LeXx im Forum Support zum VMSone
    Antworten: 3
    Letzter Beitrag: 16.04.2007, 16:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •