Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stronnicowanie w skrypcie newsów
Forum PHP.pl > Forum > PHP
NorQ
Witam, ostatnio tworzę skrypt newsów, jest już gotowy, tylko pozostały mi drobne poprawki. A mianowicie stronnicowanie wyświetla stronę pierwszą jako "0" a ja chcę żeby było "1".

O to kod:
  1. <?php
  2. /**********************************/
  3. /* System News v.1.0 BETA by NorQ */
  4. /* Lista Newsów */
  5. /**********************************/
  6. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  7.  
  8. // połączenie z mysql
  9. mysql_connect('localhost', 'root', '')
  10. or die('Nieudane polaczenie z baza danych...');
  11.  
  12. // wybór bazy danych
  13. or die('Nie udalo sie wybrac bazy danych...');
  14.  
  15. $count=2; //wyników na strone
  16. $offset=0; //obecnie wyświetlana strona
  17.  
  18. if(isset($_GET['count'])) //jeśli wybrano za pomocą GET ilość wyników
  19. {
  20. $count = $_GET['count'];
  21. }
  22. if(isset($_GET['offset'])) //jeśli wybrano kolejne strony z wynikami
  23. {
  24. $offset = $count*$_GET['offset'];
  25. }
  26.  
  27. // zapytanie zwracające ilosc rekordów z tabeli
  28. $sql = 'SELECT COUNT(*) FROM `news`';
  29. $result = mysql_query($sql);
  30. $r = mysql_fetch_array($result);
  31. //podział wyników na strony
  32. $pages = ceil($r[0]/$count);
  33. //wybranie wyników dla bieżących parametrów offset
  34. $select = 'SELECT * FROM `news` ORDER BY `id` desc LIMIT '.$count.' offset '.$offset.';';
  35.  
  36.  
  37. $q=mysql_query($select)or die(mysql_error());
  38. while($row=mysql_fetch_array($q))
  39. {
  40. echo '<i>';
  41. echo '<a href="news.php?id='.$row['id'].'"><b>'.stripslashes($row['tytul']).'</b></a> ('.date("d.m.Y, H:i", $row['data']).')';
  42. echo '</i>';
  43.  
  44. // ograniczenie ilości znaków po czym dodanie '...'
  45. echo '<p>';
  46. $text = $row['tresc'];
  47. $limit = 250; // dopuszczalna ilosc liter
  48. if (mb_strlen($text) > $limit) {
  49. $text = substr ($text, 0, $limit).'...<a href="news.php?id='.$row['id'].'">[czytaj dalej]</a>'; // obcinanie
  50. }
  51. echo $text;
  52. echo '</p>';
  53. }
  54.  
  55. for($i=0;$i<$pages;$i++) //wyswietlanie numerów stron
  56. {
  57. if($i*$count==$offset)
  58. {
  59. echo ' '.$i.' ';
  60. }else{
  61. echo '<a href="index.php?count='.$count.'&amp;offset='.$i.'"> ['.$i.'] </a>'; //tworzenie odnośnika z odpowiednimi parametrami offset i count
  62. }
  63. }
  64.  
  65. // rozłączenie z bazą danych
  66.  
  67. // koniec buforowania
  68. ?>


Co poprawić?

Żeby nie było że przywłaszczam sobie skrypt, skrypt został złożony z kilku różnych skryptów.
CuteOne
  1. for($i=1;$i<=$pages;$i++) {
  2.  
  3. if(($i-1)*$count==$offset) {
  4.  
  5. echo $i;
  6. }
  7. else{
  8.  
  9. echo '<a href="index.php?count='.$count.'&amp;offset='.$i.'"> ['.$i.'] </a>';
  10. }
  11. }
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.