bert: mysql DISTINCT mit Gewichtung

Hi,

bei Select DISTINCT bekomme ich ja keine Redundanzen ausgegeben. Kann ich mir zusätzlich ausgeben lassen, wie häufig eine Eintrag wiederholt auftaucht oder muss ich mir dann einfach alles ausgeben lassen und per Schleife zählen?

  1. Hello,

    bei Select DISTINCT bekomme ich ja keine Redundanzen ausgegeben. Kann ich mir zusätzlich ausgeben lassen, wie häufig eine Eintrag wiederholt auftaucht oder muss ich mir dann einfach alles ausgeben lassen und per Schleife zählen?

    Dafür würde sich dann GROUP BY mit COUNT anbieten.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Konsens ist kein Beweis  --  John Naisbitt
    1. Dafür würde sich dann GROUP BY mit COUNT anbieten.

      Bisherige Abfrage:

      $kat_query = mysql_query("SELECT DISTINCT Kategorie FROM news ORDER BY Kategorie ASC");  
      while ($kat_row = mysql_fetch_assoc($kat_query)) {  
      	$categories[] = $kat_row[Kategorie];  
      }
      

      So wie ich die Artikel verstanden habe habe ich es so umgebaut:

      $kat_query = mysql_query("SELECT Kategorie, COUNT(Kategorie) FROM news GROUP BY Kategorie ORDER BY Kategorie ASC");  
      while ($kat_row = mysql_fetch_assoc($kat_query)) {  
      	$categories[] = $kat_row[Kategorie];  
      }
      

      Aber wie komme ich jetzt an das Ergebnis von COUNT?

      1. Hello,

        die Artikel verstanden habe habe ich es so umgebaut:

        [code lang=php]$kat_query = mysql_query("SELECT Kategorie, COUNT(Kategorie) FROM news GROUP BY Kategorie ORDER BY Kategorie ASC");

        das ist soweit noch richtig - bitte beachte, dass du keine Spalten selektierst, die nicht entweder beim GROUP BY auftauchen (hier: Kategorie) oder aggregiert sind (hier: COUNT). Nur als Tipp für die Zukunft.

        $categories[] = $kat_row[Kategorie];

        Du hast dein error_reporting nicht sonderlich hoch eingestellt, oder? $kat_row['Kategorie'] ist etwas anderes als $kat_row[Kategorie] - letzteres funktioniert nur aus Nettigkeit von PHP.

        Aber wie komme ich jetzt an das Ergebnis von COUNT?

        indem du der Spalte einen Namen gibst:
        SELECT Kategorie, COUNT(Kategorie) AS anz_kategorie
        und dann entsprechend zugreifst
        $kat_row['anz_kategorie']

        MfG
        Rouven

        --
        -------------------
        sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
        Don't expect anyone else to support you. Maybe you have a trust fund. Maybe you'll have a wealthy spouse. But you never know when either one might run out.  --  Mary Schmich (Chicago Tribune; 1997); Baz Luhrmann (1999), see http://en.wikipedia.org/wiki/Wear_Sunscreen