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ę:
if ($num_pages > 1) {
$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)
<?php
include ('forum/config.php');
$forumid = '2'; // ID forum do pobierania newsow
//liczba newsow na stronie
$display = 2;
if (isset($_GET['np'])) { $num_pages = $_GET['np'];
} else {
$query = "SELECT temat.topic_id, `topic_title`, `topic_replies`, `post_text`,`topic_time` FROM
`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";
$num_records = $row[0];
if ($num_records > $display) {
$num_pages = ceil ($num_records/$display); } else {
$num_pages = 1;
}
}
$start = $_GET['s'];
} else {
$start = 0;
}
$x=mysql_query("SELECT temat.topic_id, `topic_title`, `topic_replies`, `post_text`,`topic_time` FROM `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");
$czas = date("d.m.Y",$r['topic_time']);
echo "[{$czas}] {$r['topic_title']}</br>{$tresc} </br>
Komentarzy: {$r['topic_replies']} | <a href='http://studionik.pl/forum/viewtopic.php?t={$r['topic_id']}'>Zobacz komentarze / Skomentuj</a></br>";
}
if ($num_pages > 1) {
$current_page = ($start/$display) + 1;
if ($current_page != 1) {
echo '<a href="newsy.php?s=' . ($start - $display) . '&np=' . $num_pages . '"><span class="stron"><< Poprzednia</span></a> '; }
for ($i = 1; $i <= $num_pages; $i++) {
if ($i !=$current_page) {
echo '<a href="newsy.php?s=' . (($display * ($i - 1))) .'&np=' .$num_pages . '"><span class="stron2">' . $i . '</span></a> ';
} else {
echo '<a href="newsy.php?s=' . (($display * ($i - 1))) .'&np=' .$num_pages . '"><span class="stron">' . $i . '</span></a> '; }
}
if ($current_page !=$num_pages) {
echo '<a href="newsy.php?s=' . ($start + $display) .'&np=' . $num_pages .'"><span class="stron">Następna >></span></a>'; }
}
$query = "SELECT temat.topic_id, `topic_title`, `topic_replies`, `post_text`,`topic_time` FROM
`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";
echo '<span class="stron2">Ogólnie w naszej bazie mamy ' . $ilo . ' nowości.</span>'; ?>