Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод ссылки вида: категория/номер

 PHP.SU

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


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

> Без описания
landsturm
Отправлено: 24 Октября, 2011 - 12:28:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2011  


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




Здравствуйте, изучать php я начал недавно, поэтому не всё ещё поддаётся моим силам. Надеюсь на помощь. Суть такова: я пытаюсь написать скрипт форума, который бы отображал ссылки на темы в таком виде site.ru/НАЗВАНИЕ_РАЗДЕЛА/НОМЕР_Т ЕМЫ. Проблема состоит в том, что я не знаю как мне это сделать, ибо ссылки отображаются как site/НОМЕР_ТЕМЫ, то есть без названия раздела. И ещё хотелось бы узнать, как для каждой категории сделать свою точку отсчёта так сказать, то есть чтобы в каждом разделе номер темы начинался от 1. Заранее благодарю за любую помощь, мне бы это очень пригодилось в дальнейшем!
 
 Top
snikers987
Отправлено: 24 Октября, 2011 - 14:20:04
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




рано тебе еще форум писать.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Данил_123
Отправлено: 24 Октября, 2011 - 14:31:44
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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




Если так хочешь форум, то купи или скачай phpBB.. А так метод GET
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $forum=$_GET['forum'];
  3. $topic=$_GET['topic'];
  4. if($forum==1) echo "Главный раздел";
  5. if($topic == 1) echo "вывод ссылки вида:категория/номер ";
  6. ?>


Только то что я написал это пример.. А так надо базу подключать и столбцы вида |num|id_forum|topic_name|


-----
http://mysitecost.ru
 
 Top
landsturm
Отправлено: 24 Октября, 2011 - 14:38:50
Post Id


Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2011  


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




Данил_123
Не в том суть, что мне нужен форум. Я пытаюсь написать какой-то скрипт, чтобы попрактиковаться.
 
 Top
Данил_123
Отправлено: 24 Октября, 2011 - 14:49:06
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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




ну все же.. Пример скрипта привел(выше)


-----
http://mysitecost.ru
 
 Top
landsturm
Отправлено: 24 Октября, 2011 - 15:31:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2011  


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




Данил_123
Большое спасибо! Можно сказать, что благодаря Вам я понял некоторые вещи и у меня получилось то, что я задумал. Вот бы ещё было неплохо, если бы Вы дали подсказку по поводу второго вопроса.
Цитата:
И ещё хотелось бы узнать, как для каждой категории сделать свою точку отсчёта так сказать, то есть чтобы в каждом разделе номер темы начинался от 1. Заранее благодарю за любую помощь, мне бы это очень пригодилось в дальнейшем!
 
 Top
Данил_123
Отправлено: 24 Октября, 2011 - 17:08:46
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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




если так сделать, то при новых сообщения подыматься не будет
(Добавление)
можно через
PHP:
скопировать код в буфер обмена
  1. select max(/* имя столбца */) from /* имя таблицы */;
Ну и отрегулировать скрипт записи в базу, и хорошо будет)


-----
http://mysitecost.ru
 
 Top
jarosluv
Отправлено: 24 Октября, 2011 - 21:28:12
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2011  


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




landsturm пишет:
И ещё хотелось бы узнать, как для каждой категории сделать свою точку отсчёта так сказать, то есть чтобы в каждом разделе номер темы начинался от 1. Заранее благодарю за любую помощь, мне бы это очень пригодилось в дальнейшем!


Предположим, каждый раздел (section) у нас обозначается своим номером (id) 1, 2, 3, ... . Названия тем хранятся в отдельной таблице (topics), вида (id, title, topic_id, section_id). Идентификатор id в данном случае для простоты является лишь суррогатным ключём, а номером темы в разделе выступает topic_id.
При добавлении новой темы (topic), нужно проверять максимальный номер темы (topic_id) из данного раздела (section_id). Предположим, нужно узнать номер последней темы из первого раздела, тогда это делается таким запросом:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `topic_id` FROM `topics` WHERE `section_id` = 1 ORDER BY `topic_id` DESC LIMIT 0, 1

Затем, если запрос не пустой, при добавлении новой темы, просто прибавляем единичку к полученному результату, иначе это первая тема в этом разделе и её topic_id будет равен единице.
 
 Top
landsturm
Отправлено: 25 Октября, 2011 - 16:54:02
Post Id


Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2011  


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




Ещё вопросик Закатив глазки
Как же сделать так, чтобы тема поднималась выше, при ответе в ней?
 
 Top
jarosluv
Отправлено: 25 Октября, 2011 - 17:16:22
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2011  


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




Если объяснять словами, то нужно найти дату последнего сообщения в каждой теме и при выводе списка тем сортировать по полученным данным в убывающем порядке.
 
 Top
landsturm
Отправлено: 26 Октября, 2011 - 21:35:08
Post Id


Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2011  


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




Собственно сделал поднятие топика при ответе в нём, а так же разбил на страницы по 5 на каждую...
Далее я приступил к выводу 3 последних ответов из топика в разделе и столкнулся с такой проблемой, что ответы выводятся, но не совсем так, как мне нужно.
Так топик выглядит изнутри:
-----------------------
ТОПИК
-1ответ
-2ответ
-3ответ
-4ответ
-----------------------
А так на странице раздела:
-----------------------
ТОПИК1
-4ответ
-3ответ
-2ответ
ТОПИК2
-4ответ
-3ответ
-2ответ
ТОПИК3
-4ответ
-3ответ
-2ответ
-----------------------

То есть ответы топика выводятся в обратном порядке. Мне же нужно добиться такого вывода трёх ответов из топика:
-----------------------
ТОПИК1
-2ответ
-3ответ
-4ответ
ТОПИК2
-2ответ
-3ответ
-4ответ
ТОПИК3
-2ответ
-3ответ
-4ответ
-----------------------

ORDER BY time DESC LIMIT 3
Что посоветуете сделать?
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Октября, 2011 - 22:01:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




А как вы получаете кол-во ответов?
 
 Top
landsturm
Отправлено: 27 Октября, 2011 - 03:45:43
Post Id


Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2011  


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




DeepVarvar
С помощью цикла, вот код, но не думаю, что он правильный.

PHP:
скопировать код в буфер обмена
  1. $result = "SELECT id, board_id, message FROM posts WHERE board_id='$t' ORDER BY time DESC LIMIT ".$end.",".$start."";
  2. $query = mysql_query("$result") or die (mysql_error());
  3.  
  4. while ($res = mysql_fetch_array($query)){
  5.         $id = $res['id'];
  6.         echo '<br> Сообщение:', $res['message'];
  7.        
  8.                 $result1 = "SELECT id, topic, message, time FROM posts WHERE topic='$id' ORDER BY time DESC LIMIT 3";
  9.                 $query1 = mysql_query("$result1") or die (mysql_error());
  10.                 while ($res1 = mysql_fetch_array($query1)){
  11.                         echo '<br> Сообщение:', $res1['message'];
  12.                         }
  13.        
  14. }
 
 Top
salim
Отправлено: 27 Октября, 2011 - 06:58:32
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Окт. 2011  


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




landsturm вы правы - код не правильный Улыбка
Юзайте LEFT JOIN
 
 Top
landsturm
Отправлено: 27 Октября, 2011 - 14:02:27
Post Id


Частый гость


Покинул форум
Сообщений всего: 164
Дата рег-ции: Окт. 2011  


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




Ну так это вообще возможно реализовать? То есть по сути мне нужно вывести 3 последних поста из БД, но только чтобы сортировалось не 3,2,1, а 1,2,3.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB