Постраничная навигая (не работают листания)

SofiaKit

Новичок
Постраничная навигая (не работают листания)

Указала чтоб на страницу выводило 2 новости, но всеравно на каждой странице выводится первые 2 новости... Где я не усмотрела код? подскажите плз:
PHP:
$perpage = 2; // Количество отображаемых данных из БД 
 if (empty($_get['page']) || ($_get['page'] <= 0)) { 
 $page = 1; 
 } else { 
 $page = (int) $_get['page']; // Считывание текущей страницы 
 } 
 // Общее количество информации 
 $count = mysql_numrows(mysql_query('select * from news')) or die('error! Записей не найдено!'); 
 $pages_count = ceil($count / $perpage); // Количество страниц 
 // Если номер страницы оказался больше количества страниц 
 if ($page > $pages_count) $page = $pages_count; 
 $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД 
 // Вызов функции, для вывода ссылок на экран 
  
 yandex_link_bar($page, $count, $pages_count, 10); 
  
 // Вывод информации из базы данных 
 echo '<p><b>Постраничный вывод информации</b></p>'; 
 $result = mysql_query('select * from news limit '.$start_pos.', '.$perpage) or die('error!'); 
 while ($row = mysql_fetch_array($result)) { 
 echo '<p>'.$row['theme_news'].'</p>'; 
 }
 

FB3

Новичок
echo $start_pos; сделай и посмотри. Если там цифра неправильная - то разбирайся, как она туда попала.

http://phpfaq.ru/debug
 

SofiaKit

Новичок
FB3 действительно, цифра 0 :)
переменная $page текущая страница, передается от скрипта к скрипту методом get, я так думаю что 1 (на примере видела), но в переменной $start_pos из этого числа вынимается 1... ммм... тут я не поняла. вобщем код не понятный, эх.
 

prolis

Новичок
Re: Постраничная навигая (не работают листания)

Автор оригинала: SofiaKit
PHP:
 // Общее количество информации 
 $count = mysql_numrows(mysql_query('select * from news')) or die('error! Записей не найдено!'); 
 $pages_count = ceil($count / $perpage); // Количество страниц
неправильно
PHP:
$result = mysql_query('select count(*) as cnt from news');
$row = mysql_fetch_array($result);
$count=$row['cnt'];
- правильно, потому что не стоит фетчить все записи таблицы, достаточно сделать это в БД
 

FB3

Новичок
prolis, еще проще так:
PHP:
$result = mysql_query('select count(*) from news'); 
$count = mysql_result($result, 0);
 

Фанат

oncle terrible
Команда форума
FB3
правильнее написать универсальную функцию, которая будет выдавать результат запроса.
А не химичить с маргинальными функциями голого АПИ.
 

FB3

Новичок
Не спорю, но я указал в рамках текущей реализации автора топика, как написать проще. При написании универсальной функции (если автор дойдет до этого) можно будет использовать данную реализацию.
 

Фанат

oncle terrible
Команда форума
вот эти советы, как из одного говнокода сделать другой говнокод, и создают репутацию пхп, как языка для быдлокодеров
 
Сверху