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

Nekonečné posouvání s daty MySQL

Váš kód jsem viděl v jiné odpovědi a doporučil bych místo kompenzace hodnot použít funkci LIMIT v MySql. Příklad:

SELECT * FROM all_posts ORDER BY post_id DESC LIMIT '".(((int)$page)*5)."',5

To pouze vezme číslo stránky v požadavku AJAX a automaticky získá offset. Je to jeden konzistentní dotaz a funguje nezávisle na posledních výsledcích na stránce. Pošlete něco jako page=1 nebo page=2 v kódu jQuery. To lze provést několika různými způsoby.

Nejprve spočítejte počet prvků vytvořených na stránce a vydělte je číslem na stránce. Tím získáte číslo stránky.

Za druhé, můžete použít jQuery a svázat aktuální číslo stránky s tělem:

$(body).data('page', 1)

Zvyšte jej o jednu při každém načtení stránky.

To je skutečně nejlepší způsob, protože používá jeden dotaz pro všechny operace a nevyžaduje mnoho informací o datech, která již na stránce jsou.

Jediná věc, kterou je třeba poznamenat, je, že tato logika vyžaduje, aby první požadavek na stránku byl 0, nikoli 1. Je to proto, že 1*5 se vyhodnotí jako 5, přičemž prvních 5 řádků se přeskočí. Pokud je 0, vyhodnotí se jako 0*5 a přeskočí prvních 0 řádků (protože 0*5 je 0).

Sdělte mi jakékoli dotazy!



  1. Vytváření souvisejících nebo podobných příspěvků pomocí PHP a MySQL

  2. Jak aktualizovat zobrazení v MySQL

  3. Jak simulovat UNPIVOT v Accessu?

  4. Vraťte původní počáteční hodnotu sloupce identity na serveru SQL Server