Witam!
Walczę z paginacją danych wyciagniętych z tabel phpbb3 w celu wyświetlania newsów na stronie...
-newsy się wyświetlają, komentarze działają itd..
Ilość newsów na stronie do tej pory określałem przez LIMIT, lecz teraz chciał bym to robić przez paginację i tu rodzą się problemy:
-Paginacja działa, ale nie wyświetlają się linki do następnych i poprzednich stron...
tzn wyświetlają się w wyjątkowej sytuacji jak usunę:
  1. if ($num_pages > 1) {
  2. $current_page = ($start/$display) + 1;

odpowiedzialne za to, że system, nie wyświetli stron poniżej strony pierwszej...
no a oczywiście jak to usunę to clickając na stronie1 link "poprzednia strona" leci na stronę -1 i juz błąd...

Problem 2 jest taki, że newsy wyświetlają się od najstarszego, a chciał bym żeby najnowsze wiadomości były na pierwszych stronach... a stare dalej (oczywiste:))

oto cały kod: (próbowałem zaradzić i jeszcze bardziej zamieszałem)
  1. <?php
  2. include ('forum/config.php');
  3. $forumid = '2'; // ID forum do pobierania newsow
  4.  
  5. mysql_connect('localhost',$dbuser,$dbpasswd);
  6. mysql_select_db($dbname);
  7. //liczba newsow na stronie
  8. $display = 2;
  9.  
  10. if (isset($_GET['np'])) {
  11. $num_pages = $_GET['np'];
  12. } else {
  13. $query = "SELECT temat.topic_id, `topic_title`, `topic_replies`, `post_text`,`topic_time` FROM
  14. `phpbb_topics` as temat, `phpbb_posts` as post WHERE temat.topic_first_post_id = post.post_id AND temat.forum_id = {$forumid} ORDER BY temat.topic_id $start, $display";
  15. $result = mysql_query($query);
  16. $row = mysql_fetch_array ($result, MYSQL_NUM);
  17. $num_records = $row[0];
  18. if ($num_records > $display) {
  19. $num_pages = ceil ($num_records/$display);
  20. } else {
  21. $num_pages = 1;
  22. }
  23. }
  24. if (isset($_GET['s'])) {
  25. $start = $_GET['s'];
  26. } else {
  27. $start = 0;
  28. }
  29. $x=mysql_query("SELECT temat.topic_id, `topic_title`, `topic_replies`, `post_text`,`topic_time` FROM
  30. `phpbb_topics` as temat, `phpbb_posts` as post WHERE temat.topic_first_post_id = post.post_id AND temat.forum_id = {$forumid} ORDER BY temat.topic_id LIMIT $start, $display");
  31.  
  32. while($r=mysql_fetch_array($x)) {
  33. $czas = date("d.m.Y",$r['topic_time']);
  34. $tresc = str_replace('[','<',$r['post_text']);
  35. $tresc = str_replace(']','>',$tresc);
  36. $tresc = nl2br($tresc);
  37.  
  38. echo "[{$czas}] {$r['topic_title']}</br>{$tresc}
  39. </br>
  40. Komentarzy: {$r['topic_replies']} | <a href='http://studionik.pl/forum/viewtopic.php?t={$r['topic_id']}'>Zobacz komentarze / Skomentuj</a></br>";
  41. }
  42. echo '<center>';
  43. if ($num_pages > 1) {
  44. $current_page = ($start/$display) + 1;
  45. if ($current_page != 1) {
  46. echo '<a href="newsy.php?s=' . ($start - $display) . '&np=' . $num_pages . '"><span class="stron"><< Poprzednia</span></a> ';
  47. }
  48. for ($i = 1; $i <= $num_pages; $i++) {
  49. if ($i !=$current_page) {
  50. echo '<a href="newsy.php?s=' . (($display * ($i - 1))) .'&np=' .$num_pages . '"><span class="stron2">' . $i . '</span></a> ';
  51.  
  52. } else {
  53. echo '<a href="newsy.php?s=' . (($display * ($i - 1))) .'&np=' .$num_pages . '"><span class="stron">' . $i . '</span></a> ';
  54. }
  55. }
  56. if ($current_page !=$num_pages) {
  57. echo '<a href="newsy.php?s=' . ($start + $display) .'&np=' . $num_pages .'"><span class="stron">Następna >></span></a>';
  58. }
  59. }
  60. echo '</br>';
  61. $query = "SELECT temat.topic_id, `topic_title`, `topic_replies`, `post_text`,`topic_time` FROM
  62. `phpbb_topics` as temat, `phpbb_posts` as post WHERE temat.topic_first_post_id = post.post_id AND temat.forum_id = {$forumid} ORDER BY temat.topic_id";
  63. $result = mysql_query($query);
  64. $ilo = mysql_num_rows($result);
  65.  
  66.  
  67. echo '<span class="stron2">Ogólnie w naszej bazie mamy ' . $ilo . ' nowości.</span>';
  68. echo '</center>';
  69. ?>
  70.  
  71.  
  72.