Denkfehler!!!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Denkfehler!!!

    WEr kann mir mal wieder mit dieser Query helfen:
    PHP-Code:
    $res mysql_query("SELECT SUM(b.seite) AS besucher, 
    a.id, a.seite AS a_seite FROM werben_seite AS a
    LEFT JOIN werben AS b ON a.id=b.seite"
    )or die("FEHLER ".mysql_error()); 
    Nun noch die DB-Struktur:
    Code:
    CREATE TABLE werben_seite (
      id int(11) NOT NULL auto_increment, // Nummer der Seite
      seite varchar(255) NOT NULL default '',// Seitenname
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    
    CREATE TABLE werben (
      a_id int(11) NOT NULL auto_increment, // Datensatz-ID
      id int(11) NOT NULL default '0', // Art der Werbung
      banner varchar(20) NOT NULL default '0', // Welcher Banner
      seite int(11) NOT NULL default '0', // ID der Seite
      wann datetime NOT NULL default '0000-00-00 00:00:00', // Wann kam der Besucher
      PRIMARY KEY  (a_id)
    ) TYPE=MyISAM;
    Bekomme folgende Fehlermeldung:
    FEHLER Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

  • #2
    Das erste hat sich erstmal erledig. Weil ich jetzt hier auf das nächste gestoßen bin beim erweitern der Query.

    Ich möchte gerne das Ergebnis haben:

    Seite => Besucher gesamt von dieser Art=> Art des Besuch

    Meine Query dazu, aber noch nicht zusammen gesetzt:
    PHP-Code:
    $res  mysql_query("SELECT SUM(art_id) AS art, SUM(seite_id) AS seiten FROM werben");
    $res1 mysql_query("SELECT art FROM werben_art WHERE id=$ROW[art]");
    $res2 mysql_query("SELECT id FROM werben_seite WHERE id=$ROW[seiten]";
    while(
    $row mysql_fetch_array($res))
        {
        echo
    "$row[a_seite] => $row[besucher] => $row[art]<br>";
        } 
    Hier noch mal dei geänderten DB-Strukturen:
    Code:
    CREATE TABLE werben (
      a_id int(11) NOT NULL auto_increment,
      art_id int(11) NOT NULL default '0',
      banner_id varchar(20) NOT NULL default '0',
      seite_id int(11) NOT NULL default '0',
      wann datetime NOT NULL default '0000-00-00 00:00:00',
      PRIMARY KEY  (a_id)
    ) TYPE=MyISAM;
    
    CREATE TABLE werben_art (
      id int(11) NOT NULL default '0',
      art varchar(255) NOT NULL default '',
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    
    CREATE TABLE werben_banner (
      id varchar(255) NOT NULL default '',
      banner varchar(255) NOT NULL default '',
      url varchar(255) NOT NULL default ''
    ) TYPE=MyISAM;
    
    CREATE TABLE werben_seite (
      id int(11) NOT NULL auto_increment,
      seite varchar(255) NOT NULL default '',
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      bittesehr. habe allerdings die tabellen leicht modifiziert.

      und ein paar demos habe ich zum test auch beigefügt...

      Code:
      #
      # Table structure for table `werben`
      #
      
      CREATE TABLE werben (
        a_id int(11) NOT NULL auto_increment,
        art_id int(11) NOT NULL default '0',
        banner_id int(11) NOT NULL default '0',
        seite_id int(11) NOT NULL default '0',
        wann datetime NOT NULL default '0000-00-00 00:00:00',
        PRIMARY KEY  (a_id)
      ) TYPE=MyISAM;
      
      #
      # Dumping data for table `werben`
      #
      
      INSERT INTO werben VALUES (1, 1, 1, 1, '2003-02-30 00:00:00');
      INSERT INTO werben VALUES (2, 1, 1, 1, '2001-02-30 00:00:00');
      INSERT INTO werben VALUES (3, 2, 1, 1, '0000-00-00 00:00:00');
      INSERT INTO werben VALUES (4, 2, 1, 1, '0000-00-00 00:00:00');
      INSERT INTO werben VALUES (5, 2, 1, 1, '0000-00-00 00:00:00');
      # --------------------------------------------------------
      
      #
      # Table structure for table `werben_art`
      #
      
      CREATE TABLE werben_art (
        art_id int(11) NOT NULL auto_increment,
        art_name varchar(255) NOT NULL default '',
        PRIMARY KEY  (art_id)
      ) TYPE=MyISAM;
      
      #
      # Dumping data for table `werben_art`
      #
      
      INSERT INTO werben_art VALUES (1, 'art-demo');
      INSERT INTO werben_art VALUES (2, 'art-demo 2');
      # --------------------------------------------------------
      
      #
      # Table structure for table `werben_banner`
      #
      
      CREATE TABLE werben_banner (
        banner_id int(11) NOT NULL auto_increment,
        banner_name varchar(255) NOT NULL default '',
        banner_url varchar(255) NOT NULL default '',
        PRIMARY KEY  (banner_id)
      ) TYPE=MyISAM;
      
      #
      # Dumping data for table `werben_banner`
      #
      
      INSERT INTO werben_banner VALUES (1, 'banner-demo', '');
      # --------------------------------------------------------
      
      #
      # Table structure for table `werben_seite`
      #
      
      CREATE TABLE werben_seite (
        seite_id int(11) NOT NULL auto_increment,
        seite_name varchar(255) NOT NULL default '',
        PRIMARY KEY  (seite_id)
      ) TYPE=MyISAM;
      
      #
      # Dumping data for table `werben_seite`
      #
      
      INSERT INTO werben_seite VALUES (1, 'seite-demo');
      und hier die query, die funktioniert. HABS GETESTET.

      Code:
      SELECT    S.seite_name,
                COUNT(A.art_id) SummeArt,
                A.art_name
      
      FROM      werben W
                  LEFT OUTER JOIN werben_art A ON A.art_id=W.art_id
                  LEFT OUTER JOIN werben_seite S ON S.seite_id=W.seite_id
      
      GROUP BY  A.art_name,
                S.seite_name
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Jau, Danke klappt.
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar

        Lädt...
        X