NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Fetch

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Marek Burda
Člen
Avatar
Marek Burda:26.6.2017 13:20

Ahoj - Pracujem na rebríčku kde som sa zasekol.
Tento kod vypíše 15 ľudí zoradených podľa XP. Na druhej stránky by som rád vypísal ľudí dalších čiže 15-30
Je možné nejako riadkom priradzovať čísla bez toho aby musel mať každý user stlpec s jeho pozíciou v db ? Ďakujem

$select = mysqli_query($con,"SELECT * FROM tb_players ORDER BY xp DESC LIMIT 15");
while($row = $select->fetch_assoc()){
echo "<tr><td>".$row["name"]."</td><td><strong>".$row["xp"]."</strong></td></tr>;
}
Editováno 26.6.2017 13:20
 
Odpovědět
26.6.2017 13:20
Avatar
Odpovídá na Marek Burda
Martin Konečný (pavelco1998):26.6.2017 13:36

Ahoj, tohle jde celkem jednoduše:

$position = 1;

while ($row = $select->fetch_assoc()) {
        echo "{$position} ....";

        $position++;
}
Nahoru Odpovědět
26.6.2017 13:36
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Marek Burda
Člen
Avatar
Marek Burda:26.6.2017 13:46

Asi si ma zle pochopil ale ďakujem toto som potreboval tiež :) Teda znovu : na jeden stránke chcem zobraziť top 15 a na druhej stránke chcem zobraziť ľudí od 16 miesta až po 30. Takže to musím nejako zapodmienkovať. Otázkou je ako

 
Nahoru Odpovědět
26.6.2017 13:46
Avatar
Odpovídá na Marek Burda
Martin Konečný (pavelco1998):26.6.2017 14:09

Pokud tedy chápu správně, pak hledáš pojem "stránkování". Někde tu na to určitě budou návody.
Zjednodušeně jde o to, že si určíš, kolik budeš mít záznamů na stránku (třeba 15), v URL si předáš číslo stránky (třeba &page=5) a v SQL příkazu řekneš, že chceš vybrat 15 záznamů (LIMIT 15) až od určitého záznamu, který spočítáš jako "počet záznamů na stránku" * "číslo stránky", teda 15 * 5 = 75 (OFFSET 75).

V kódu zjednodušeně takto

$page= isset($_GET["page"]) ? (int) $_GET["page"] : 0;
$limit = 15;  // záznamů na stránku
$offset = $page * $limit;

$select = mysqli_query($con,"SELECT * FROM tb_players ORDER BY xp DESC LIMIT {$limit} OFFSET {$offset}");

Pak ti bude zbývat udělat samotný paginator, tj. zobrazení těch čísel stránek, mezi kterými můžeš překlikávat.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
26.6.2017 14:09
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Marek Burda
Člen
Avatar
Marek Burda:26.6.2017 14:20

Okey presne toto som potreboval :) Super ďakujem

 
Nahoru Odpovědět
26.6.2017 14:20
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.