Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Базы данных » MySQL » Помогите пожалуйста с парой запросов
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Varsosnill
Участник+
Средний рейтинг: 3.21 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус: Varsosnill в оф-лайне
Question Помогите пожалуйста с парой запросов [сообщение #59910]

Я в 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: определен

Old Post 30-01-2004 23:59
Нажмите сюда для просмотра профайла Varsosnill Отправить Персональное сообщение Varsosnill Посетить домашнию страничку Varsosnill! Найти сообщения от Varsosnill Добавить Varsosnill в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #59915]

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

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 31-01-2004 00:54
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Varsosnill
Участник+
Средний рейтинг: 3.21 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус: Varsosnill в оф-лайне
[сообщение #59920]

нет, не работает ( прописываю в темплете:
просмотров: $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: определен

Old Post 31-01-2004 01:44
Нажмите сюда для просмотра профайла Varsosnill Отправить Персональное сообщение Varsosnill Посетить домашнию страничку Varsosnill! Найти сообщения от Varsosnill Добавить Varsosnill в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #59922]

Так значит views и replycount у нас в таблице thread, тогда запрос изменяем так: SELECT forum.*,thread.*, CASE

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 31-01-2004 01:56
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Varsosnill
Участник+
Средний рейтинг: 3.21 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус: Varsosnill в оф-лайне
[сообщение #59926]

Я не знаю почему, но когда я так изменяю код:

$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: определен

Old Post 31-01-2004 02:30
Нажмите сюда для просмотра профайла Varsosnill Отправить Персональное сообщение Varsosnill Посетить домашнию страничку Varsosnill! Найти сообщения от Varsosnill Добавить Varsosnill в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #59928]

Вместо "thread.*" напиши "thread.views as tviews, thread.replycount as treplies", и вызывай как $forum[tviews] и $forum[treplies]

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 31-01-2004 02:42
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Varsosnill
Участник+
Средний рейтинг: 3.21 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус: Varsosnill в оф-лайне
[сообщение #59929]

$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: определен

Old Post 31-01-2004 02:50
Нажмите сюда для просмотра профайла Varsosnill Отправить Персональное сообщение Varsosnill Посетить домашнию страничку Varsosnill! Найти сообщения от Varsosnill Добавить Varsosnill в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #59930]

Вроде да.

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 31-01-2004 02:52
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Varsosnill
Участник+
Средний рейтинг: 3.21 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус: Varsosnill в оф-лайне
[сообщение #59931]

RaZEr
я ещё пока не верю своим глазам, но эта штука кажется работает!!!
Моей благодарности нет предела, ведь уже третья бессонная ночь пошла и теперь кажется можно обновить код и расслабиться..

сейчас потестирую и скажу окончательный результат

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 31-01-2004 02:55
Нажмите сюда для просмотра профайла Varsosnill Отправить Персональное сообщение Varsosnill Посетить домашнию страничку Varsosnill! Найти сообщения от Varsosnill Добавить Varsosnill в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Varsosnill
Участник+
Средний рейтинг: 3.21 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2003
Место проживания: Valhalla.ulver.com
Публикаций: 180
Статус: Varsosnill в оф-лайне
[сообщение #68014]

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: определен

Old Post 17-06-2004 17:43
Нажмите сюда для просмотра профайла Varsosnill Отправить Персональное сообщение Varsosnill Посетить домашнию страничку Varsosnill! Найти сообщения от Varsosnill Добавить Varsosnill в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #70144]

И мне с одним запросом помогите!
2 таблицы а и б в них есть столбцы spec (и в той и в той) как из них выбрать уникальные записи в один столбец?

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 24-08-2004 13:01
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #70151]

используй left join.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 24-08-2004 18:27
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #70156]

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: определен

Old Post 24-08-2004 21:43
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 21:07.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01311803 seconds (51.83% PHP - 48.17% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.