Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Paginacja za pomocą mysqli_fetch_object
Forum PHP.pl > Forum > PHP
slawekxx
Witam, trochę czasu spędziłem na stronicowaniu skryptu licznik kliknięć , a mianowicie licznik ten wyświetla miniaturki zdjęć jest ich dość dużo sam skrypt wygląda tak plik index
  1. include("conn.php");
  2. $sql = mysqli_query($link, "SELECT id,image,post_date,title,duration,download FROM wp_my_plugin GROUP BY post_date DESC ");
  3. while($result = mysqli_fetch_object($sql)):
  4. ?>
  5.  
  6. <a border="0" href="counter.php?id=<?php echo $result->id; ?>" class="gals-box MultimediaItem MMID_216667" ">
  7. <img border="0" src="<?php echo $result->image; ?>"width="90" height="56" ><strong><?php echo $result->title; ?>
  8. </strong><em><?php echo $result->duration; ?></em>
  9. </a>
  10.  
  11. <?php
drugi plik counter.php
  1. //1. include the configuration file
  2. include("conn.php");
  3.  
  4. //2. Get the id from the url and store it into a variable
  5. $id = mysqli_real_escape_string($link, $_GET['id']);
  6.  
  7. //3. fetch the url and clicks from this banner
  8. $clicks = mysqli_fetch_object(mysqli_query($link, "SELECT image,hd,download FROM wp_my_plugin WHERE id=".$id.""));
  9.  
  10. //4. increase clicks with 1
  11. $new_click = $clicks->download+1;
  12.  
  13. //5. update this into the database, check if it was succesfull
  14. if(mysqli_query($link, "UPDATE wp_my_plugin SET up_post_date=NOW(),download=".$new_click." WHERE id=".$id."")):
  15. //6. redirect to the url
  16.  
  17. header("Location: ".$clicks->hd);
  18. else:
  19. //6. else write to error log
  20. endif;


i nie mam pojęcia jak zrobić do tego stronicowanie .
Mlodycompany
jest kilka możliwości, albo ograniczyć w zapytaniu ilość pobieranych rekordów, albo pobierać wszystkie do tablicy i zależnie od strony wyświetlać jakieś elementy

  1. SELECT id,image,post_date,title,duration,download FROM wp_my_plugin GROUP BY post_date DESC LIMIT [b]ilość rekordów na strone[/b], [b]rekord od którego ma zaczynać[/b]

lub
  1. SELECT id,image,post_date,title,duration,download FROM wp_my_plugin GROUP BY post_date DESC

  1. $c = 0;
  2. while($result = mysqli_fetch_object($sql)){
  3. $c++;
  4. if($c >= [b]rekord od którego ma zaczynać[/b] && $c < [b]rekord od którego ma zaczynać[/b] + [b]ilość rekordów na strone[/b]){
  5. //wyświetlenie danych
  6. }
  7. }


osobiście polecam 1 metodę ponieważ mając kilka tysięcy wpisów, pobierając je wszystkie, spowalniamy skrypt
slawekxx
tylko mi powiedz do jakiego pliku mam te zapytanie wrzucić ? i jak byś mógł te zapytania dać do tagów "[ php]" bo wychodzą z tego krzaki
Mlodycompany
zapytania te umieszczasz w tym pliku w których chcesz to wyświetlić czyli wg mnie do indexu
slawekxx
ale teraz nie wiem jak obliczyć liczbę rekordów wynikającą z zapytania do bazy w przypadku "mysqli_fetch_object" chyba mysql_num_rows tu nie działa
wdev
Najprościej zrobić drugą kwerendę COUNT(id) FROM wp_my_plugin.
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.