Zählen und Ausgeben in einer MySql abfrage

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

  • Zählen und Ausgeben in einer MySql abfrage

    Hallo,
    ich hab hier eine MySql abfrage, die leider nur ein Ergebnis ausgibt, statt der 4gezählten. Kann ich das überhaupt zusammen realisieren? Wenn ja wie?

    Hier die Abfrage:
    PHP-Code:
    $sql "SELECT
                 count(visited_sites.site) as numberofvisitedsites,
                 visited_sites.site,
                 visited_sites.start,
                 visited_sites.site_visits_time,
                 base.id,
                 base.comesfrom,             
                 base.ip,
                 base.visits_time
                FROM
                 base,
                 visited_sites
               WHERE
                 base.id = visited_sites.relid;"
    ;
       
    $result mysql_query($sql) OR die (mysql_error());
       while(
    $row mysql_fetch_assoc($result)) 

  • #2
    Jedes andere DBMS würde dir a) die Nutzung einer Aggregat-Funktion ohne GROUP BY (IIRC?), und b) das Auslesen von Spaltenwerten, über die nicht gruppiert wurde, um die Ohren hauen.


    Und um die Ohren gehauen gehört dir auch dein Posting - du bist lange genug dabei, dass du wissen solltest, dass in so einem Fall das Hinschmeissen einer Query nebst "funzt nich wie ich will" kaum ausreicht, sondern dass Tabellenstruktur, Beispieldaten und welches Ergebnis bei Verwendung dieser gewünscht ist, eigentlich das Minimum an Information sein sollten.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Sorry hätte ich wissen sollen

      id site site_visits_time start relid

      1 Startseite 0 1 1
      2 Netzwerk 2 2 1
      3 Download Wysiwyg-Editor 1 2 1
      4 Download Reservierungsplaner 2 2 1

      id time comesfrom visits_time ip
      1 1249901272 localhost/mysite/ 1249900557 127.0.0.1

      Also diese obigen Daten liegen vor
      Ich habe folgendes Beispiel gefunden:
      SELECT species, COUNT(*) FROM Bird GROUP BY species;

      So habe ich es ausprobiert:
      $sql = "SELECT
      visited_sites.site,
      visited_sites.start,
      visited_sites.site_visits_time,
      base.id,
      base.comesfrom,
      base.ip,
      base.visits_time,
      count(*) as numberofvisitedsites
      FROM
      base,
      visited_sites
      WHERE
      base.id = visited_sites.relid
      GROUP BY
      visited_sites.site;";


      Leider wird zwar die korrekte anzahl ausgegeben (4) jedoch nur der erste wert von visited_sites.site ausgegeben. Was mache ich denn noch falsch?

      Kommentar


      • #4
        nicht getestet!
        Code:
        SELECT
        visited_sites.site,
        visited_sites.start,
        visited_sites.site_visits_time,
        base.id,
        base.comesfrom,
        base.ip,
        base.visits_time,
        GRT.anzahl as numberofvisitedsites
        FROM
        base inner join visited_sites on base.id = visited_sites.relid
        inner join (SELECT seite  ,count(*) as anzahl from visited_sites group by seite) as GRT on visited_sites.site=GRT.seite;
        Slava
        bituniverse.com

        Kommentar

        Lädt...
        X