PHP zusammenzählen von einträgen und den höchsten wert ermitteln.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PHP zusammenzählen von einträgen und den höchsten wert ermitteln.

    Hallöchen...

    Und zwar hab ich ein script gebaut was wenn ein user für ein user votet ein eintrag in der Sql-db macht...

    Quellcode

    1. $res = mysql_query("SELECT COUNT(radio) AS wahl FROM icc_djwahlen WHERE radio = '$row->id' and wemid = '$row2->id'") or die (mysql_error());
    2. $ja = mysql_fetch_array($res);


    das problem ist wenn für

    user1 (3stimmen)
    user2 (12stimmen)
    user3 (8stimmen)
    user4 (11stimmen)
    ....

    sind soll er mir dies sotieren nach

    user2 (12stimmen)
    user4 (11stimmen)
    user3 (8stimmen)
    user1 (3stimmen)
    ....

    und dies als echo ausgeben

    hinzu soll er bei dem höchsten wert (also user2) ein prefix setzen (1)...

    Dank im Voraus und
    greets
  • Schau dir die SQL-Befehle ORDER BY und GROUP BY an. Würdest du genauer auf deinen Ansatz eingehen, könnte ich dir auch eine präzisere Lösung bieten.

    Quellcode

    1. $i = 1;
    2. foreach($users as $user) {
    3. echo $i;
    4. echo $user;
    5. ...
    6. $i++;
    7. }

    Alternativ könntest du auch mit einer if-Anweisung arbeiten, falls dich wirklich nur das erste Element interessiert.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Florian ()

  • Hallöchen...

    das erste element soll der user sein mit den 18stimmen und im ein wert in die sql schreiben...
    über if variabel kann ich schlecht ein Max-wert angeben, so das er hingeht und Z.b. max16 ist da auch mal ein user 17 stimmen und der andere 18 stimmen haben kann.

    dann soll noch sotiert werden nach stimmen...

    die sql sieht so aus...

    CREATE TABLE `icc_djwahlen` (
    `id` int(11) NOT NULL auto_increment,
    `wemid` int(11) NOT NULL default '0',
    `radio` int(11) NOT NULL,
    `vonid` int(11) NOT NULL default '0',
    `vonip` text collate latin1_general_ci NOT NULL,
    `vontime` text collate latin1_general_ci NOT NULL,
    `nichts` int(11) NOT NULL default '0',
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci PACK_KEYS=1 AUTO_INCREMENT=1 ;

    wo er erst vergleicht nach "radio" und wenn eine übereinstimmung gibt das er dann nach "wemid" die gesammtstimmen des users zusammenrechnet...

    nur ist die liste so wie ich oben beschrieben habe durcheinander...

    greets