2011-01-09 6 views
0

нумерация страниц, чтобы показать ASC для DESC является:ошибка пагинация

if($page == 1) { $pstart = 0; } else { $pstart = $page * $totalrows; } 
$pend = $pstart + $totalrows; 

и HTML код из ASC в DESc

<form action="<?=$_SERVER["SCRIPT_NAME"];?>" method="get"> 
    <div> 

    <a class="page-numbers" href="<?=$_SERVER["SCRIPT_NAME"];?>?p=<?=$page + 1;?>">Next</a> 
    <input class="page-numbers" name="p" type="text" value="<?=$page + 1;?>" /> <input class="page-numbers" type="submit" value="Jump" /> 
    </div> 

    </form> 

Я показываю теперь DESC для ASC сообщений с помощью этого SQL:

$sql = "SELECT posts.Tags as tags, posts.OwnerUserId as postsid, posts.Id as postid, posts.Body as body, posts.Title as title, users.Id as userid, users.DisplayName as usersname FROM posts JOIN users ON posts.OwnerUserId = users.Id WHERE posts.Id >= " . $pstart . " AND posts.Title != '' ORDER by posts.Id DESC LIMIT " . $totalrows; 

Какой код php следует изменить, так как для отображения сообщений DESC на ASC и разбиения на страницы для отображения следующих 10 сообщений

ответ

1

изменения Лимита часть (синтаксис LIMIT смещение, row_count)

$sql = "SELECT posts.Tags as tags, posts.OwnerUserId as postsid, posts.Id as postid, posts.Body as body, posts.Title as title, users.Id as userid, users.DisplayName as usersname FROM posts JOIN users ON posts.OwnerUserId = users.Id WHERE posts.Id >= " . $pstart . " AND posts.Title != '' ORDER by posts.Id DESC LIMIT " . (($page-1) * $totalrows) .",". $totalrows; 
+0

спасибо, его работы – Dan

1

Вы можете использовать команду SQL LIMIT, чтобы ограничить себя 10 результатов & передать смещение. также, ваш код if($page == 1) { $pstart = 0; } else { $pstart = $page * $totalrows; } $pend = $pstart + $totalrows;
неверен - для страницы 1, $ pstart будет 0, но для страницы 2 $ sptart будет 20, заставив вас пропустить записи 10-19.

Смежные вопросы