sql >> Databáze >  >> RDS >> Mysql

Vytvořte více stránek z dotazu mysql

Jak jste uhodli, musíte použít LIMIT klíčové slovo .

Přijímá dvě hodnoty (uvozovky) :

  • posun prvního řádku, který se má vrátit
  • maximální počet vrácených řádků


Ve vašem případě budete muset pro první stránku použít něco takového:

select * from your_table order by ... limit 0, 50

A pak pro druhou stránku:

select * from your_table order by ... limit 50, 50

A za třetí:

select * from your_table order by ... limit 100, 50

A tak dále;-)


Upravit po komentáři: Chcete-li získat číslo stránky, musíte jej získat ze svých adres URL, což by vypadalo takto:

http://www.example.com/page.php?pagenum=2

Poté vypočítáte první hodnotu limitu, :

$offset = 50 * intval($_GET['pagenum']);

A vložte jej do svého dotazu:

select * from your_table order by ... limit $offset, 50


Vytváření adres URL na různé stránky je nyní otázkou získání adres URL, jako jsou tyto:

http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...

Pokud víte, že máte 700 prvků a 50 na stránku, budete mít 700/50 stránek;-)
Takže něco takového by mělo stačit :

for ($i=0 ; $i<700/50 ; i++) {
    // Use http://www.example.com/page.php?pagenum=$i as URL
}


Samozřejmě, 700 je hodnota, která se pravděpodobně může změnit a neměla by být pevně zakódována:měla by být určena z databáze pomocí count dotaz :

select count(*) as total
from your_table
...


  1. Naplnění tabulky PL/SQL z bloku v Oracle D2k Forms

  2. Dotaz MYSQL pomocí proměnné jako názvu tabulky v LEFT JOIN

  3. Nalezení podobných číselných vzorů v tabulce

  4. Vypočítejte procenta z SUM() ve stejném dotazu SELECT SQL