Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nieskończone przewijanie z danymi MySQL

Widziałem Twój kod w innej odpowiedzi i zalecałbym użycie funkcji LIMIT w MySql zamiast przesuwania wartości. Przykład:

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

To po prostu pobierze numer strony w żądaniu AJAX i automatycznie pobierze przesunięcie. To jedno spójne zapytanie, które działa niezależnie od ostatnich wyników na stronie. Wyślij coś takiego jak page=1 lub page=2 w kodzie jQuery. Można to zrobić na kilka różnych sposobów.

Najpierw policz liczbę elementów zbudowanych na stronie i podziel przez liczbę na stronie. To da numer strony.

Po drugie, możesz użyć jQuery i powiązać bieżący numer strony z treścią:

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

Zwiększ ją o jeden przy każdym załadowaniu strony.

Jest to naprawdę lepszy sposób, ponieważ używa jednego zapytania do wszystkich operacji i nie wymaga wielu informacji o danych znajdujących się już na stronie.

Jedyną rzeczą do zapamiętania jest to, że ta logika wymaga, aby pierwsze żądanie strony miało wartość 0, a nie 1. Dzieje się tak, ponieważ 1*5 da 5, z pominięciem pierwszych 5 wierszy. Jeśli jest to 0, przeliczy się na 0*5 i pominie pierwsze 0 wierszy (ponieważ 0*5 to 0).

Daj mi znać, jakie masz pytania!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Silnik magazynu dla tabeli nie obsługuje naprawy. InnoDB czy MyISAM?

  2. zapytanie usuwające wszystkie znaki po ostatnim przecinku w łańcuchu

  3. błąd składni dla deklaracji mysql zmiennej

  4. Błąd podczas importowania zrzutu SQL do MySQL:Nieznana baza danych / Nie można utworzyć bazy danych

  5. Kalendarz rezerwacji Daty przyjazdu i wyjazdu