PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
PhysX
Отправлено: 10 Мая, 2016 - 08:34:49
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Здравствуйте. Имеется база данных с тремя таблицами:
1. таблица с категориями categories с полями id и cat;
2. таблица с публикациями papers с полями id и content;
3. таблица со связами публикация с категориями papers_cats с полями cat_id и paper_id.

Вывожу публикации по категориям запросом:
CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT * FROM papers INNER JOIN papers_cats ON papers.id = papers_cats.paper_id WHERE papers_cats.cat_id=".(int)$_GET['id']


Задача заключается в том, что нужно вывести публикации постранично в ссылках вида http://домен/articles.php?id=(идентификатор категории)?page=(номер страницы).

PHP:
скопировать код в буфер обмена
  1. $page=$_GET['page'];
  2. $quality=1;
  3. $limit=1;
  4.  
  5. if(!is_numeric($page)) $page=1;
  6. if($page<1) $page=1;
  7.  
  8. $result = mysql_query("SELECT * FROM papers INNER JOIN papers_cats ON papers.id = papers_cats.paper_id WHERE papers_cats.cat_id=".(int)$_GET['id']);
  9. $rows=mysql_num_rows($result);
  10.  
  11. $pages=ceil($rows/$quality);
  12. echo $pages."<br>";
  13. $pages++;
  14.  
  15.  
  16. if($page>$pages) $page=1;
  17.  
  18. if(!isset($list)) $list=0;
  19.  
  20. $list=--$page*$quality;
  21.  
  22. $res=mysql_query("SELECT * FROM papers INNER JOIN papers_cats ON papers.id = papers_cats.papaer_id WHERE papers_cats.cat_id=".(int)$_GET['id']." LIMIT $quality OFFSET $list");
  23.  
  24. $row_offset=mysql_num_rows($res);
  25.  
  26. for($i=0; $i<$row_offset; $i++)
  27. {
  28.     $row=mysql_fetch_array($res);
  29.      echo $row['title'];
  30. }
  31.  
  32. if($page>=1)
  33. {
  34.     echo '<a href="/articles.php?id='.$row['id'].'?page=1?id='.$k.'"><<</a>';
  35.     echo '<a href="/articles.php?id='.$row['id'].'?page='.$page.'">< </a>';
  36. }
  37.  
  38. $start=($page+1)-$limit;
  39. $end=($page+1)+$limit;
  40.  
  41. for($j=1; $j<$pages; $j++)
  42. {
  43.     if($j>=$start && $j<=$end)
  44.     {
  45.         if($j==($page+1))
  46.         {   echo '<a href="/articles.php?id='.$row['id'].'?page='.$j.'"><strong>'.$j.'</strong></a>'; }
  47.         else
  48.         {   echo '<a href="/articles.php?id='.$row['id'].'?page='.$j.'">'.$ .'</a>';}
  49.     }
  50. }
  51.  
  52. if($j>$page && ($page+2)<$j)
  53. {
  54.     echo '<a href="/articles.php?id='.$row['id'].'?page='.($page+2).'"> ></a>';
  55.     echo '<a href="/articles.php?id='.$row['id'].'?page='.($j-1).'">>></a>';
  56. }


При этом скрипт работает только если заранее в запросе указать идентификатор категории вместо (int)$_GET['id'] и убрать структуру ?id= из формирования ссылок. Помогите решить проблему. Не туп в программировании, но в php профан. Заранеее спасибо.

(Отредактировано автором: 11 Мая, 2016 - 09:02:31)

 
 Top
PhysX
Отправлено: 11 Мая, 2016 - 13:04:29
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Нашёл ошибку. Перед psge в ссылках вместо вопросительного знака нужен &.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB