Ranking użytkowników / For loop

0

Cześć, łączę serwer ts3 ze stroną za pomocą TS3 PHP FRAMEWORK i chce zrobić ranking "Top online". Problem jest taki, że nie wiem do końca jak prawidłowo zrobić for loopa, żeby każdy kolejny rekord wyciągnięty z bazy danych był po 1 większy od poprzedniego. Obecnie skrypt wyrzuca mi każdą osobę po 200 razy. Na razie chce się skupić na tym, aby osoby wyciągnięte z bazy danych były ponumerowane od 1 do 200, a potem będę się męczył z posortowaniem tego od najwyższego.

<?php
                    require_once "../baza.php";
                    mysqli_report(MYSQLI_REPORT_STRICT);

                    try
                    {
                        $polaczenieTopOnline = new mysqli($host, $db_user, $db_password, "ranking");
                        function secondsToTime($seconds) {
                            $dtF = new \DateTime('@0');
                            $dtT = new \DateTime("@$seconds");
                            return $dtF->diff($dtT)->format('%h Godzin %i Minut %s Sekund');
                        }
                        if ($polaczenieTopOnline->connect_errno!=0)
                        {
                            throw new Exception(mysqli_connect_errno());
                        }
                        else
                        {
                            $TopOnline="SELECT * FROM user";
                            if($rezultatTopOnline=$polaczenieTopOnline->query($TopOnline))
                            {
                                $tsConfig = require_once("tsc.php");
                                if($rezultatTopOnline -> num_rows > 0)
                                {
                                    while($pokaz_rezultat = $rezultatTopOnline->fetch_assoc())
                                    {
                                        $pokaz_rezultat_nick = $pokaz_rezultat["name"];
                                        $pokaz_rezultat_ilosc_online = $pokaz_rezultat["count"];
                                        //$ignoruj_id = $pokaz_rezultat["uuid"];

                                        $koncowyRezultat = $pokaz_rezultat_nick." / ".secondsToTime($pokaz_rezultat_ilosc_online)."<br/>";
                                        for($miejsce = 1; $miejsce <= 200; $miejsce++)
                                         {
                                         echo $miejsce.' '.$koncowyRezultat;
                                         }
                                    }
                                }
                                else
                                {
                                    echo "Nie znaleziono rezultatu";
                                }
                            }
            
                            $polaczenieTopOnline->close();
                        }
                    }
                    catch(Exception $error_wyjatek)
                    {
                        echo '<span style="color:red;">"Błąd serwera!"</span>';
                        echo '<br />Informacja developerska: '.$error_wyjatek; 
                    }

                ?>
4

W złym miejscu masz tą pętle for. Obecnie masz while który wykonuje się tyle razy ile wierszy z bazy otrzymasz, a w nim for.
Lepszym rozwiązaniem chyba będzie deklaracja jakiegoś licznika przed while i jego inkrementacja w tej pętli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1