Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2011, 13:07   #1
zmey1
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 30
По умолчанию Навигация

Всем привет.

Поставил себе скрипт навигации на страницу новостей, но они выводятся на каждой странице как то не верно.
Хочу чтобы было по 5 новостей на странице. Я где то напутал и теперь они выводятся не по 5, а по разному вообще и в произвольном порядке. Я думаю, что проблема с формулой, но не могу найти ошибку.
Как, где и что мне прописать, чтобы при нажатии на следующую страницу выводилось следующие пять новостей, а не гурьбой в перемешку?
Сам скрипт ошибок не выдает.


<?
$table = 'portail_news'; // НАЗВАНИЕ ТАБЛИЦЫ

$chislo = 5; // ЧИСЛО СООБЩЕНИЙ НА СТРАНИЦЕ

// ДЛЯ УДОБСТВА ОБОЗНАЧИЛ ПЕРЕМЕННУЮ С ТЕКСТОМ ОШИБКИ
$text_error = '<br />Ошибочка вышла!';

// СОЕДЕНИМСЯ С MySQL
$db_link = mysql_connect($sql_serveur,$sql_use r,$sql_passwd);
$sql_bdd="atak";
$result=mysql_db_query($sql_bdd,"SE T NAMES 'utf8'",$db_link);


if (!$result) {
echo $text_error;
exit;
}

// СОЗДАЁМ ЗАПРОС
$sql_req = "SELECT id_news from $table ORDER by id_news desc";
// СЧИТАЕМ КОЛЛИЧЕСТВО ЗАПИСЕЙ В ТАБЛИЦЕ
$result=mysql_db_query($sql_bdd,$sq l_req,$db_link) ;
$num_rows = mysql_num_rows($result);
if (!$result) {
echo $text_error;
exit;
}
// А ТЕПЕРЬ СЧИТАЕМ НА СКОЛЬКО СТРАНИЦ РАЗБИТЬ ЗАПИСИ И ВЫДЕЛЯЕМ ЦЕЛОЕ ЧИСЛО
$num_rows = round($num_rows/$chislo);
if (!$num_rows) {
echo $text_error;
exit;
}
// ЗДЕСЬ МЫ ПРОВЕРЯЕМ НА КАКОЙ СТРАНИЦЕ СЕЙЧАС ПОЛЬЗОВАТЕЛЬ
if (isset($_GET['str'])) {
$nav = $_GET['str'];
}
else {
$nav = 0;
}
$nav = intval($nav); // ДЛЯ ЗАЩИТЫ ОТ НЕХОРОШИХ ДЯДЕНЕК ВЫДЕЛЯЕМ ЦЕЛУЮ ЧАСТЬ $GET['str']
echo 'Навигация: ';

// А ТЕПЕРЬ ВЫВОДИМ НОМЕРА СТРАНЦ
for ($i=1; $i<$num_rows; $i++) {
if ($i != $nav) {
echo '<a href="'.$PHP_SELF.'?str='.$i.'">'.$ i.'</a> ';
}
else {
// АКТИВНУЮ СТРАНИЦУ ДЕЛАЕМ НЕ ГИПЕРССЫЛКОЙ
echo '<span>'.$i.'</span> ';
}
}
echo '<hr />'; // ОТДЕЛИМ НАВИГАЦЮ ОТ КОНТЕНТА ДЛЯ НАГЛЯДНОСТИ

if (!$i) {
echo $text_error;
exit;
}
// НАЧИНАЕМ ВЫВОДИТЬ САМУ ИНФОРМАЦИЮ ПОСТРАНИЧНО
if (!isset($_GET['str'])) {
$str = 0;
}
else {
$str = $_GET['str']*$chislo - $chislo;
}
$nomer = $str + 5;
// ФОРМИРУЕМ ЗАПРОС НУЖНОЙ НАМ ЧАСТИ ИНФОРМАЦИИ
$sql_req = "SELECT title,bodys from $table ORDER by id_news desc limit $str, $nomer";
$result=mysql_db_query($sql_bdd,$sq l_req,$db_link) ;
// ИНАЧЕ ВЫВОДИМ ОШИБКУ
if (!$result) {
echo $text_error;
exit;
}

echo '<div style="width: 40%;">';
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['id_news'].' - <strong>'.$row['title'].'</strong>
<br />
'.substr(strip_tags($row['bodys']),0,100).'.. <a href="show_news.php?id_news='.$row['id_news'].'">>></a></p>';
}
echo '</div>';

?>
zmey1 вне форума Ответить с цитированием
Старый 18.08.2011, 17:33   #2
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Код:
$nomer = $str * $chislo;
Не забудьте нажать на весы и оставить благодарность
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Навигация stck HTML и CSS 4 13.11.2010 03:50
Обновленная навигация Kapitann PHP 2 27.09.2010 15:39
Навигация в документе kanapfelka Microsoft Office Word 20 24.09.2010 19:54
Навигация по листу Rodion Microsoft Office Excel 1 19.04.2010 19:47
Навигация по таблице Натуся Помощь студентам 4 31.10.2007 00:58