Indyaner: PHP+MySQL: Die meissten einträge hat > Name rückgeben

Hi

MeineDatenabnk hat einige werte wie Username,ID,foren_beitrag etc.
Ich will jetzt dass MYSQL die Datenbnak abcheckt und sagt .."Hier... USERNAME='Herbert' hat die meissten Einträge in der Datenbank".

Gibts es eine einfachere Lösung um Zu ermitteln wer die meissten Einträge in einer Datenbank hat als alle einträge zu durchlaufen und mit einem Array die werte festzuhalten und im nachinein dass den grössten wert aus dem array zu ermitteln?

Wäre es auch mögich (wen es eine MySQL-Lösung gibt) dass er mir auch ein LIMIT 0,3 zurückgibt oder wäre dann nur (wenn es eine Lösung für MYSQL gibt) jeweils der höchste wert zurückgebar...

MFg
Indyaner

  1. hi,

    MeineDatenabnk hat einige werte wie Username,ID,foren_beitrag etc.
    Ich will jetzt dass MYSQL die Datenbnak abcheckt und sagt .."Hier... USERNAME='Herbert' hat die meissten Einträge in der Datenbank".

    Gibts es eine einfachere Lösung um Zu ermitteln wer die meissten Einträge in einer Datenbank hat als alle einträge zu durchlaufen und mit einem Array die werte festzuhalten und im nachinein dass den grössten wert aus dem array zu ermitteln?

    ja, in so einem falle solltest du die datenbank selber schon das zählen übernehmen lassen, anstatt das nachher in PHP zu machen.

    schau dich mal bezüglich COUNT() im manual um, und kapitel 4.3.4.8 Zeilen zählen ist bestimmt auch hilfreich.

    Wäre es auch mögich (wen es eine MySQL-Lösung gibt) dass er mir auch ein LIMIT 0,3 zurückgibt oder wäre dann nur (wenn es eine Lösung für MYSQL gibt) jeweils der höchste wert zurückgebar...

    ja, auch das ist möglich. du brauchst dann natürlich noch ein zusätzliches ORDER BY, um vor dem LIMITieren der ausgabe nach der vorher ermittelten anzahl zu sortieren.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Hi,

    also alle Einträge durchlaufen musst du schon, sonst kannste ja nicht
    feststellen, wer die meisten Einträge hat.
    Aber das Array brauchst Du nicht...

    SQL = "SELECT * FROM user ORDER BY eintraege LIMIT 1"

    Dann sortiert er Dir nach Einträgen. Du kannst auch noch
    hinter 'ORDER BY einträge' ein ASC oder DESC setzen,
    entweder für den grössten oder kleinsten Wert...

    Grüße

    1. Tut mir leid, aber wir reden wohl aneinander vorbei...

      Ich meinte dass in der Datenbank sagen wir mal 20 Einträge von (Username=) Peter, 4 von Annegred und 120 von Peterchen...

      MySQL soll nun zählen: "...insgesamt sidn es 144 Einträge... Peterchen hat mit 120 einträgen die meissten einträge in der Datenbank... ich gebe den Usernamen Peterchen zurück"

      Oder verstehe ich da etwas falsch?

      Denn mit der von dir (und mir schon oft benutzten technik) kann ich ja nur bestimmte (ORDER BY x) Werte sortieren...
      Ich möchte aber dass er mir Den Username des mitglieds zurückgibt die quasi nach MYSQL_NUM_ROWS die meissten einträge in der DB hat.

      Scher zu verstehen... leicht zu rechnen =)

      ciao