Autor Zpráva
Ajtak
Profil
Dobrý den. Potřebuji poradit.

Mám jednoduchý while cyklus.
A mám tabulku soutěžících. Každý soutěžící má sloupec celkem.

Tyto data vypisuji tím while cyklem

A já potřebuji, že když mají dva stejně bodů, aby to pořadí bylo v rozmezí (Viz obrázek)


Zbytek vypisuji nějak takto: $row['jmeno']; $row['bodycelkem']

A já potřebuji, že když mají dva stejně bodů, aby to pořadí bylo v rozmezí (Viz obrázek)

Díky za každou radu, už jsem uplně bezradný
Enko
Profil *
Nejdřív si nech tato data uložená v paměti (nech si je uložené v poli nějaké proměnné, třeba takto, jak je tu máš) Poté toto pole projeď třeba funkcí array_count_values, která ti rozebere pole a vrátí ti jednotlivé hodnoty a počet jejich opakování. A to pořadí a případné rozmezí zvládedneš určitě sám. Doufám, že jsem to napsal jasně :-)
juriad
Profil
nebo můžeš rozšířit dotaz do databáze:
SELECT tabulka.*, pocty.pocet 
FROM tabulka JOIN (SELECT celkem, COUNT(*) AS pocet FROM tabulka GROUP BY celkem) pocty ON tabulka.celkem = pocty.celkem
ORDER BY celkem

Pak ti bude vracet řádky:
Jméno Celkem Pocet
Dan 97.5 1
Adam 97.2 1
Petr 90.5 2
Pavel 90.5 2
Michal 87.3 4
Jan 87.5 4
David 87.5 4
Tomáš 87.3 4
Jarda 85.2 1
Počet vyjadřuje počet řádků, které mají shodnou hodnotu celkem; na základě této informace můžeš rovnou vypočítat rozsah pořadí: Michal je ve výsledku 5. Jeho pořadí bude 5 až (5+pocet-1)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: