Автор Тема: Постраничная навигация  (Прочитано 4509 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Elfist

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Постраничная навигация
« : 26 Мая 2010, 22:23:05 »
Снова я:)

существует такая вот страница


<?php include("config.php");
if (isset(
$_GET[\'date\'])) /* Проеряем в глобальном массиве переменную date */
{
$date = $_GET[\'date\'];  /* Если найдена,то идём дальше */
}
else /* Если не найдето,то выводим сообщение и завершаем работу */
{
exit ("<p>Неправельно создан зопрос</p>");
	

}
$date_title = $date; /* Создаём переменную вида xxxx-xx для запихивания в заголовок */

$date_begin = $date; /* Создаём начальную дату,и приравниваем к $date вида xxxx-xx */
$date++; /* Увиличиваем переменную $date на еденицу */
$date_end = $date; /* Создаём конечную дату и приравниваем к новой $date */

$date_begin = $date_begin."-01"; /* Паркуем к переменной дате день т.е приводим к виду xxxx-xx-xx */
$date_end = $date_end."-01"; /* Аналогично */

$resultik = mysql_query ("SELECT text FROM settings WHERE page=\'index\'",$db);
$myrowik = mysql_fetch_array ($resultik);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $disc[\'title\']; echo " - Архив новостей за $date_title"; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="1000px" border="0" align="center" background="000000">
  <?php include("blocks/header.php"); ?>
  <tr border=0>
  
    <tr border="0"><td valign="top" class="main_border"><table width="100%" border="0" class="right">
    
      <tr border=0>
        <?php include("blocks/lefttd.php"); ?>
        
        <td border="0" valign="top" class="pox" background="000000">
	

	

	
	

<?php echo $myrowik[\'text\'];  
//постраничная навигация
$result77 = mysql_query("SELECT str FROM options", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET[\'page\'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM data WHERE date>\'$date_begin\' AND date<\'$date_end\'");
$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
	
	







$result = mysql_query ("SELECT id,title,description,date,author,view,rating,q_vote FROM data WHERE date>\'$date_begin\' AND date<\'$date_end\' ORDER BY id DESC LIMIT $start, $num",$db);
if (!$result)
{
echo "<p>Запрос не может быть выполнен.Пожалуйста сообщите об этом администратору.
<strong>Код ошибки:</strong> </p>";
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array ($result);


do
{
$r = $myrow[\'rating\']/$myrow[\'q_vote\'];
	

$r = intval($r);
printf ("<table align=\'center\' class=\'post\'>
         <tr class=\'ry\'>
         <td class=\'post_title\' ><h2>%s</h2></td>
         </tr>
	
	
 
         <tr background=\'000000\'>
         <td align=\'center\'>%s </td></tr><tr><td class=\'ro\'><p align=\'right\' class=\'post_name\'>Дата добавления: %s | Автор: %s | Просмотров: %s | Рейтинг: <img src=\'img/%s.gif\'> | <a href=\'view_post.php?id=%s\'><font color=\'#FF9900\'>Подробнее</font></a></td></p></tr></table>",$myrow ["title"],$myrow ["description"],$myrow ["date"],$myrow ["author"],$myrow["view"],$r, $myrow ["id"] );
	
	
  
}
while ($myrow = mysql_fetch_array ($result));

//Здесь выводим страницы
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = \'<a href=view_date.php?date=\'.$date.\'&page=1>Первая</a> | <a href=view_date.php?date=\'.$date.\'&page=\'. ($page - 1) .\'>Предыдущая</a> | \';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = \' | <a href=view_date.php?date=\'.$date.\'&page=\'. ($page + 1) .\'>Следующая</a> | <a href=view_date.php?date=\'.$date.\'&page=\' .$total. \'>Последняя</a>\';

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

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

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

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

}

}
else
{
echo "<p>Информация по запросу не может быть извлечена,в таблице нет запесей</p>";
exit ();
}
?>
 
 
          </td>
          <?php include("blocks/righttd.php"); ?>
      </tr>
    </table></td>
  </tr>

<?php include("blocks/footer.php"); ?>
</table>
</body>
</html>



Проблема в навигации.
При заходе на страницу выводиться заданное колличество материала,но вот если нажать на страницу например-2 то получается вот что

Запрос не может быть выполнен.Пожалуйста сообщите об этом администратору.
Код ошибки:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'-10, 10\' at line 1

но я не вижу тут никакой винтаксической ошибки.
Пожскажите что делать.

Оффлайн Elfist

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Постраничная навигация
« Ответ #1 : 05 Июня 2010, 16:27:19 »
Закройте тему!проблема решена

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28