Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie n-tego rekordu z bazy danych
Forum PHP.pl > Forum > PHP
Kajakus
Jestem początkujący. Wiem jak wyświetlać całą bazę danych , ale nie wiem jak to zrobić żeby wyświetlić np. tylko pierwsze trzy wiersze z bazy, albo tylko piąty. Ktoś poratuje?
toaspzoo
Mysql limit

przykład:
Kod
select * from tabela limit 0,1;
select * from tabela limit 5,2;
select * from tabela limit 10;

zapytanie 1 zwróci jeden rekord, licząc od pierwszego (zerowego+1)
zapytanie 2 zwróci dwa rekordy, zaczynając od szóstego
zapytanie 3 zwróci 10 rekordów

Dodatkowo może Ci się przydać klauzula order by [asc/desc] do sortowania rezultatu
Kajakus
Czy można jakoś dynamicznie modyfikować te liczby? Chodzi mi głównie o to żeby na pierwszej stronie przykładowo wyświetlały się pierwsze 4 wpisy, na drugiej od piątego do ósmego itd...
toaspzoo
Do zapytania możesz dorzucić zmienną, np:

  1.  
  2. $od = 5;
  3. $ile = 10;
  4. $zapytanie = "select * from tabela limit $od,$ile;";
  5.  
  6. mysql_query($zapytanie ...
  7.  


Na przykładzie strony:

link -> http://example.com/index.php?od=1&ile=10

  1.  
  2. $od = (int)$_GET['od'];
  3. $ile = (int)$_GET['ile'];
  4. $zapytanie = "select * from tabela limit $od,$ile;";
  5.  
  6. mysql_query($zapytanie ...
  7.  
Kajakus
I wtedy while($r=mysqli_fetch_assoc($res)) ? Czy można to ewentualnie jakoś w pętli for umieścić?
toaspzoo
Na moim przykładzie to while($r = mysql_fetch_array($zapytanie))...
Tego typu zapytania nie umieszczasz w pętli, bo w tedy za każdą iteracją (powtórzeniem), wynik byłby ten sam
Kajakus
Spłodziłem takiego potworka:

  1. if ((int)$_GET['page']>1){
  2. $od_rekordu = ((int)$_GET['page'])*$results_per_page-$results_per_page;
  3.  
  4. } else{
  5. $od_rekordu = 1;
  6. }
  7.  
  8. echo $od_rekordu;
  9.  
  10. $res = mysqli_query($con, "SELECT * FROM `Warsztaty` LIMIT $od_rekordu, $results_per_page;");
  11.  
  12. if(mysqli_num_rows($res))
  13. {
  14.  
  15. echo "<ul class='list-unstyled'>";
  16. while($r=mysqli_fetch_assoc($res))
  17.  
  18. {


Wyświetla dosyć prawidłowo, jednak nie wiem dlaczego nie wyświetla mi 11tego rekordu. (wyswietlam 10 na stronie) Jako 11ty, czyli pierwszy na drugiej stronie wyświetla 10ty, a poźniej 12ty z pominięciej 11tego
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.