Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Проблема с постраничной навигацией, не ставит огриничение на вывод

Ответить
Настройки темы
Проблема с постраничной навигацией, не ставит огриничение на вывод

Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: Sham
Дата: 13-07-2010
Описание: оформление кода
Помогите пожалуйста уже сил нет, два дня бьюсь.
1 - выводит все статьи из БД на странице, хотя стоит ограничение 2 на страницу, в БД это значение хранится в таблице option поле str
2 - при переходе по навигации на 2-ю , 3-ю и тд странички выводится все та же информация, думаю что из за пункта 1.
Вот вывод на страничку index.php
PHP код: Выделить весь код

<?    $result13 mysql_query("SELECT * FROM lessons ",$db);  if (!$result13)    {  echo "<p>Запрос на выборку данных из базы не прошел! <br> <strong>Код ошибки:</strong></p>";  exit (mysql_error());  }    if (mysql_num_rows ($result13)>0)    {  $myrow mysql_fetch_array($result13);    do    {    printf("<table width='350' cellpadding='0' cellspacing='0' class='lessons'>          <tr>      <td>         <h3><a href='wiew_lessons.php?id=%s'><p>%s</p></a><p>%s</p></h3></p>                   <p class='lesson3'>Автор урока: %s</p>                   <p class='lesson3'>Дата добавления урока: %s</p>      </td>            <td></td>          </tr>                    <tr>            <td>%s</td>            <td></td>          </tr>        </table>",$myrow['id'],$myrow['title'],$myrow['img'],$myrow['author'],$myrow['date'],$myrow['description']);    }    while ($myrow mysql_fetch_array($result13));    }    else    {  echo "<p>В таблице нет записей!</p>";  exit();  }    ?>


Чуть ниже идет постраничная навигация:
PHP код: Выделить весь код

<? $result77 mysql_query("SELECT str FROM options"$db);  $myrow77 mysql_fetch_array($result77);  $num $myrow77["str"];  // Извлекаем из URL текущую страницу  if(isset($_GET['page'])) $page = $_GET['page'];  else $page = 1;  // Определяем общее число сообщений в базе данных  $result00 = mysql_query("SELECT COUNT(*) FROM lessons",$db);  $temp = mysql_fetch_array($result00);  $posts = $temp[0];  // Находим общее число страниц  $total = (($posts - 1) / $num) + 1;  $total =  intval($total);  // Определяем начало сообщений для текущей страницы  $page = intval($page);  // Если значение $page меньше единицы или отрицательно  // переходим на первую страницу  // А если слишком большое, то переходим на последнюю  if(empty($page) or $page < 0) $page = 1;    if($page > $total) $page = $total;  // Вычисляем начиная с какого номера  // следует выводить сообщения  $start = $page * $num - $num;  // Выбираем $num сообщений начиная с номера $start  $result14 = mysql_query("SELECT * FROM lessons ORDER BY id LIMIT $start, $num",$db);  ?>


Продолжение кода.
PHP код: Выделить весь код

<?  // Проверяем нужны ли стрелки назад  if ($page != 1) $pervpage = '<a href=./index.php?page=1>Первая</a> | <a href=./index.php?page='. ($page - 1) .'>Предыдущая</a> | ';  // Проверяем нужны ли стрелки вперед  if ($page != $total) $nextpage = ' | <a href=./index.php?page='. ($page + 1) .'>Следующая</a> | <a href=./index.php?page=' .$total. '>Последняя</a>';    // Находим две ближайшие станицы с обоих краев, если они есть  if($page - 5 > 0) $page5left = ' <a href=./index.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';  if($page - 4 > 0) $page4left = ' <a href=./index.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';  if($page - 3 > 0) $page3left = ' <a href=./index.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';  if($page - 2 > 0) $page2left = ' <a href=./index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';  if($page - 1 > 0) $page1left = '<a href=./index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';    if($page + 5 <= $total) $page5right = ' | <a href=./index.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>';  if($page + 4 <= $total) $page4right = ' | <a href=./index.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>';  if($page + 3 <= $total) $page3right = ' | <a href=./index.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>';  if($page + 2 <= $total) $page2right = ' | <a href=./index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';  if($page + 1 <= $total) $page1right = ' | <a href=./index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';    // Вывод меню если страниц больше одной    if ($total > 1)  {  Error_Reporting(E_ALL & ~E_NOTICE);  echo "<div class=\"pstrnav\">";  echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;  echo "</div>";  }  ?>


Вот так код нагляднее будет:
PHP код: Выделить весь код

<?

$result13 
mysql_query("SELECT * FROM lessons ",$db);
if (!
$result13)

{
echo 
"<p>Запрос на выборку данных из базы не прошел! <br> <strong>Код ошибки:</strong></p>";
exit (
mysql_error());
}

if (
mysql_num_rows ($result13)>0)

{
$myrow mysql_fetch_array($result13);

do

{

printf("<table width='350' cellpadding='0' cellspacing='0' class='lessons'>
        <tr>
    <td>         <h3><a href='wiew_lessons.php?id=%s'><p>%s</p></a><p>%s</p></h3></p>
                 <p class='lesson3'>Автор урока: %s</p>
                 <p class='lesson3'>Дата добавления урока: %s</p>
    </td>
          <td></td>
        </tr>
        
        <tr>
          <td>%s</td>
          <td></td>
        </tr>
      </table>"
,$myrow['id'],$myrow['title'],$myrow['img'],$myrow['author'],$myrow['date'],$myrow['description']);

}

while (
$myrow mysql_fetch_array($result13));

}

else

{
echo 
"<p>В таблице нет записей!</p>";
exit();
}

?>
<? $result77 
mysql_query("SELECT str FROM options"$db);
$myrow77 mysql_fetch_array($result77);
$num $myrow77["str"];
// Извлекаем из URL текущую страницу
if(isset($_GET['page'])) $page $_GET['page'];
else 
$page 1;
// Определяем общее число сообщений в базе данных
$result00 mysql_query("SELECT COUNT(*) FROM lessons",$db);
$temp mysql_fetch_array($result00);
$posts $temp[0];
// Находим общее число страниц
$total = (($posts 1) / $num) + 1;
$total =  intval($total);
// Определяем начало сообщений для текущей страницы
$page intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page 0$page 1;
  if(
$page $total$page $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start $page $num $num;
// Выбираем $num сообщений начиная с номера $start
$result14 mysql_query("SELECT * FROM lessons ORDER BY id LIMIT $start, $num",$db);
?>
<?
// Проверяем нужны ли стрелки назад
if ($page != 1$pervpage '<a href=./index.php?page=1>Первая</a> | <a href=./index.php?page='. ($page 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total$nextpage ' | <a href=./index.php?page='. ($page 1) .'>Следующая</a> | <a href=./index.php?page=' .$total'>Последняя</a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page 0$page5left ' <a href=./index.php?page='. ($page 5) .'>'. ($page 5) .'</a> | ';
if(
$page 0$page4left ' <a href=./index.php?page='. ($page 4) .'>'. ($page 4) .'</a> | ';
if(
$page 0$page3left ' <a href=./index.php?page='. ($page 3) .'>'. ($page 3) .'</a> | ';
if(
$page 0$page2left ' <a href=./index.php?page='. ($page 2) .'>'. ($page 2) .'</a> | ';
if(
$page 0$page1left '<a href=./index.php?page='. ($page 1) .'>'. ($page 1) .'</a> | ';

if(
$page <= $total$page5right ' | <a href=./index.php?page='. ($page 5) .'>'. ($page 5) .'</a>';
if(
$page <= $total$page4right ' | <a href=./index.php?page='. ($page 4) .'>'. ($page 4) .'</a>';
if(
$page <= $total$page3right ' | <a href=./index.php?page='. ($page 3) .'>'. ($page 3) .'</a>';
if(
$page <= $total$page2right ' | <a href=./index.php?page='. ($page 2) .'>'. ($page 2) .'</a>';
if(
$page <= $total$page1right ' | <a href=./index.php?page='. ($page 1) .'>'. ($page 1) .'</a>';

// Вывод меню если страниц больше одной

if ($total 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo 
"<div class=\"pstrnav\">";
echo 
$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo 
"</div>";
}
?>


Отправлено: 13:39, 29-01-2009

 

Аватара для Odessyt

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, Sham - я пошёл учиться

Отправлено: 10:38, 14-07-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Проблема с постраничной навигацией, не ставит огриничение на вывод

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Драйвер - Не ставит драйвера на SIGMATEL STAC 92XX C-Major HD Audio Golovan Microsoft Windows 7 5 08-06-2010 08:48
Ругаеться что ОС не Лицензионная и не ставит MP11 kaEwituS Microsoft Windows 2000/XP 2 28-11-2006 07:34
Когда планируете ставит Windows Vista??? xden777 Microsoft Windows Vista 21 24-11-2006 00:50
юзер ставит себе права администратора Infinity7 Microsoft Windows 2000/XP 2 09-02-2006 22:07
Прога которая ставит Пароли. ALECS Хочу все знать 2 07-03-2004 23:14




 
Переход