 |
 |
Форум сетевых администраторов » Базы данных » MySQL » Помогите пожалуйста с парой запросов
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник+
|
Помогите пожалуйста с парой запросов |
[сооб. #59910]
30-01-2004 23:59 |
|
Участник+

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус:  |
Я в mysql совершенно не шарю и хотел спросить у знающих людей. Вот имеем такой код:
$forums=$DB_site->query('SELECT forum.*, CASE WHEN icon.iconpath IS NULL THEN \'\' ELSE icon.iconpath END as icon, thread.title as thtitle FROM forum left outer join thread on thread.forumid = forum.forumid and thread.lastpost >= (forum.lastpost-30) LEFT OUTER JOIN icon ON icon.iconid=thread.iconid WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder');
Ð_то код последней темы на главной странице vBulletin (lastpost hack), который прописывается в index.php. Проблема состоит в том, куда в нём можно правильно прописать запросы на views и replycount чтобы потом вавести количество просмотров и ответов в этой теме?
Помогите пожалуйста.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-01-2004 23:59 |
|
|
Модератор
|
| Он вроде итак вернуть должен, если эта информация... |
[сооб. #59915]
31-01-2004 00:54 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Он вроде итак вернуть должен, если эта информация в таблице forum, а если нет, то ты просто не туда тему запостил.
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
31-01-2004 00:54 |
|
|


Участник+
|
нет, не работает ( прописываю в темплете:
просмотров:... |
[сооб. #59920]
31-01-2004 01:44 |
|
Участник+

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус:  |
нет, не работает ( прописываю в темплете:
просмотров: $forum[views] | ответов: $forum[replycount]
и никакой реакции..
--------
Вот например запрос:
$lastposttitle = $DB_site->query("SELECT iconid,title,threadid,views,replycount FROM thread WHERE forumid='$forum[forumid]' AND open!='10' AND visible=1 ORDER BY lastpost DESC");
в темплете мы прописываем:
$lastposttitle[views], $lastposttitle[replycount]
и получаем кол-во просмотров и ответов.. а как это сделать в коде:
$forums=$DB_site->query('SELECT forum.*, CASE WHEN icon.iconpath IS NULL THEN '' ELSE icon.iconpath END as icon, thread.title as thtitle FROM forum left outer join thread on thread.forumid = forum.forumid and thread.lastpost >= (forum.lastpost-30) LEFT OUTER JOIN icon ON icon.iconid=thread.iconid WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder');
куда и как здесь прописать views и replycount?
__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla
Сообщение было отредактировано Varsosnill 31-01-2004 в 01:56
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
31-01-2004 01:44 |
|
|
Модератор
|
| Так значит views и replycount у нас в таблице thread,... |
[сооб. #59922]
31-01-2004 01:56 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Так значит views и replycount у нас в таблице thread, тогда запрос изменяем так: SELECT forum.*,thread.*, CASE
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
31-01-2004 01:56 |
|
|
Участник+
|
Я не знаю почему, но когда я так изменяю код:
$forums=$DB_site->query('SELECT... |
[сооб. #59926]
31-01-2004 02:30 |
|
Участник+

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус:  |
Я не знаю почему, но когда я так изменяю код:
$forums=$DB_site->query('SELECT forum.*,thread.*, CASE WHEN icon.iconpath IS NULL THEN '' ELSE icon.iconpath END as icon, thread.title as thtitle FROM forum left outer join thread on thread.forumid = forum.forumid and thread.lastpost >= (forum.lastpost-30) LEFT OUTER JOIN icon ON icon.iconid=thread.iconid WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder');
у меня весь форум перекособочивает, все разделы пропадают и всё кверх дном.. видно что-то неправильно.. может быть надо как-то по другому?
Varsosnill добавил 31-01-2004 в 02:38:47:
Я немного изменил порядок, поставил thread.*, перед
forum.*, (SELECT thread.*,forum.*, CASE) и форум вернулся на место, теперь его не кособочит 
другой вопрос - как в темплете правильно вызывать views и replycount?
просмотров: $forums[views] | ответов: $forums[replycount]
- ничего не выводит
просмотров: $forum[views] | ответов: $forum[replycount]
- выводит какие-то нереальные случайные цифры, не имеющие отношения к действительности
как правильно сделать?
__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
31-01-2004 02:30 |
|
|
Модератор
|
| Вместо "thread.*" напиши "thread.views as tviews, thread.replycount... |
[сооб. #59928]
31-01-2004 02:42 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Вместо "thread.*" напиши "thread.views as tviews, thread.replycount as treplies", и вызывай как $forum[tviews] и $forum[treplies]
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
31-01-2004 02:42 |
|
|
Участник+
|
| $forums=$DB_site->query('SELECT forum.*, CASE WHEN icon.iconpath IS NULL THEN... |
[сооб. #59929]
31-01-2004 02:50 |
|
Участник+

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус:  |
$forums=$DB_site->query('SELECT forum.*, CASE WHEN icon.iconpath IS NULL THEN '' ELSE icon.iconpath END as icon, thread.title as thtitle, thread.views as tviews, thread.replycount as treplies FROM forum left outer join thread on thread.forumid = forum.forumid and thread.lastpost >= (forum.lastpost-30) LEFT OUTER JOIN icon ON icon.iconid=thread.iconid WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder');
- так правильно?
__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
31-01-2004 02:50 |
|
|
Участник+
|
RaZEr
я ещё пока не верю своим глазам, но... |
[сооб. #59931]
31-01-2004 02:55 |
|
Участник+

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус:  |
RaZEr
я ещё пока не верю своим глазам, но эта штука кажется работает!!! 
Моей благодарности нет предела, ведь уже третья бессонная ночь пошла и теперь кажется можно обновить код и расслабиться..
сейчас потестирую и скажу окончательный результат
__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
31-01-2004 02:55 |
|
|
Участник+
|
RaZEr
всё работало просто прекрасно, спасибо,... |
[сооб. #68014]
17-06-2004 17:43 |
|
Участник+

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус:  |
RaZEr
всё работало просто прекрасно, спасибо, но теперь встала проблема перехода на vB3 и проблема повторяется 
Объясню ситуацию.
В vB2 при выборке из базы данных для хака последнего ответа
добавлялась выборка "thread.views as tviews, thread.replycount as
treplies". Вот кусок кода где это всё происходило (файл index.php):
---------------------------
### НАЙТИ:
$forums=$DB_site->query('SELECT * FROM forum WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder');
### ЗАМЕНИТЬ:
$forums=$DB_site->query('SELECT forum.*, CASE WHEN icon.iconpath IS NULL THEN '' ELSE icon.iconpath END as icon, thread.title as thtitle, thread.views as tviews, thread.replycount as treplies FROM forum left outer join thread on thread.forumid = forum.forumid and thread.lastpost >= (forum.lastpost-30) LEFT OUTER JOIN icon ON icon.iconid=thread.iconid WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder');
---------------------------
И ещё в файле forumdisplay.php тоже самое:
---------------------------
### НАЙТИ:
$forums=$DB_site->query('SELECT * FROM forum WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder,forumid');
### ЗАМЕНИТЬ:
$forums=$DB_site->query('SELECT forum.*, CASE WHEN icon.iconpath IS NULL THEN '' ELSE icon.iconpath END as icon, thread.title as thtitle, thread.views as tviews, thread.replycount as treplies FROM forum left outer join thread on thread.forumid = forum.forumid and thread.lastpost >= (forum.lastpost-30) LEFT OUTER JOIN icon ON icon.iconid=thread.iconid WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder,forumid');
---------------------------
И далее в темплете forumhome_lastpostby я добавлял под конец:
просмотров: $forum[tviews] | ответов: $forum[treplies]
А как сейчас сделать это-же в vB3 не знаю вообще. Помоги пожалуйста.. Где мне сделать эти дополнительные запросы для формы последнего сообщения на главной страничке форума и как потом вывести в темплете последнего сообщения?
__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
17-06-2004 17:43 |
|
|
Участник+
|
И мне с одним запросом помогите!
2 таблицы... |
[сооб. #70144]
24-08-2004 13:01 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
И мне с одним запросом помогите!
2 таблицы а и б в них есть столбцы spec (и в той и в той) как из них выбрать уникальные записи в один столбец?
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-08-2004 13:01 |
|
|
Участник+
|
| polo но тогда он во 2ой столбец добавляет... |
[сооб. #70156]
24-08-2004 21:43 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
polo но тогда он во 2ой столбец добавляет Или я чего то не понял?
И ещё один запрос "в догонку":
2 табл. а и б запрос типа:
SELECT id FROM a WHERE spec='some text';
id_a spec
табл. б вида:
id_б id_a spec
Как составить запрос, что бы мне выдались все id_а из табл. а содержащие нужный spec или в а или в б? Я придумал, что то вида:
SELECT id_а FROM а, б WHERE (а.spec = 'some text' OR б.spec = 'some text') GROUP BY soiskatel_id;
Но это работает только когда, для соотв. записи из б есть запись в а, а так бывает не всегда...
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-08-2004 21:43 |
|
|
|
Формат времени GMT. Текущее время 20:24.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.02135491 seconds (37.91% PHP - 62.09% MySQL) with 26 queries.
|
 |