Форум → Программирование → PHP для идиотов → Постраничный вывод+сортировка
Постраничный вывод+сортировка
-
12 ноября 2008 г. 13:09, спустя 1 минуту 22 секунды
Ты все-таки не умеешь задвать правильно вопросы. Тебе надо не "извлекать все данные", а узнать "сколько всего записей на данный момент". Почувствуйте разницу .. -
12 ноября 2008 г. 13:10, спустя 1 минуту 4 секунды
Нуу ….. теперь задай правильный вопрос!
Как сделать диапазон вывода данных на каждую страницу? -
12 ноября 2008 г. 13:12, спустя 1 минуту 47 секунд
А как же это? Со старым кодом и при небольших объемах данных, переход страниц все равно не осуществляется. -
12 ноября 2008 г. 13:14, спустя 2 минуты
Ладно, я понял, что вы имеете ввиду. Сделаю. Но старый код все равно не будет работать. Спасибо. отлучусь на полчаса… -
12 ноября 2008 г. 13:14, спустя 8 секунд
Обясняю
Пишешь SELECT SQL_CALC_FOUND_ROWS ….. LIMIT …
тогда следующий запрос
SELECT FOUND_ROWS()
вернет общее число строк, которые были бы без LIMIT
Почему страрый код не работал, сказать не могу т.к. ты так и не поделился своими исследованиями на тему почему у тебя что-то не то содержится в $page -
12 ноября 2008 г. 13:21, спустя 6 минут 41 секунду
В старом коде вообще нет $page. Есть $_SESSION['pagenumber'].
<?php
echo '<input name="page_i" id="page_i" type="hidden" value="'.$_SESSION['page_i'].'">';
echo '<input name="pagenumber" id="pagenumber" type="hidden" value="'.$_SESSION['pagenumber'].'">';
if ($_SESSION['page_i']-$count_on_page<1){
echo '·<span>«</span>';
}else{
echo '·<a href="?field='.$_GET['field'].'&sort='.$_GET['sort'].'&page='.$i.'" onclick="nextPageList(\''.($_SESSION['page_i']-$count_on_page).'\');">«</a>';
}
for ($i=$_SESSION['page_i'];(($i*$page_size)<=$rows_count)&&
($i<($_SESSION['page_i']+$count_on_page));$i++)
{
echo '·';
if ($i!=$_SESSION['pagenumber']){
echo '<a href="?field='.$_GET['field'].'&sort='.$_GET['sort'].'&page='.$i.'" onclick="gotoPage('.$i.');">'.$i.'</a>';
}
else{
echo '<span class="batchCurrent">'.$i.'</span>';
}
}
if (($rows_count>($i-1)*$page_size)&&($i<($_SESSION['page_i']+$count_on_page)))
{
echo '·';
if ($i!=$_SESSION['pagenumber']){
echo '<a href="?field='.$_GET['field'].'&sort='.$_GET['sort'].'&page='.$i.'" onclick="gotoPage('.$i.');">'.$i.'</a>';
}
else{
echo '<span class="batchCurrent">'.$i.'</span>';
}
}
if (($_SESSION['page_i']+$count_on_page-1)*$page_size>$rows_count){
echo '·<span>»</span>';
}else{
echo '·<a href="?field='.$_GET['field'].'&sort='.$_GET['sort'].'&page='.$i.'" onclick="nextPageList(\''.($_SESSION['page_i']+$count_on_page).'\');">»</a>';
}
$_GET['pagenumber']=$_SESSION['pagenumber'];
?>
</span>
</td>
<td>
<select name="perpage" onchange="document_collection_setbatching();">
<?php
for ($i=1;$i<4;$i++){
if ($i*10==$page_size){
echo "<option value=\"".($i*10)."\" selected=\"true\">".($i*10)."</option>";
}
else {echo "<option value=\"".($i*10)."\">".($i*10)."</option>";}
}
?> -
12 ноября 2008 г. 13:29, спустя 8 минут 28 секунд
В общем в любом случае код надо отлаживать.
Прежде всего вставлять отладочные печати, печатать запросы, печатать переменные и найти то место, где что-то теряется.
Только так можно найти ошибки. И вот когда ты нашел проблемное место, можно несколько строчек скинуть на форум. Тогда здесь помогут.
Я уже говорил, что не у одного гуру-программиста транслятор в голове не встроен и он в 99% не сможет найти ошибки глядя на большой кусок кода.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!