Консультация № 170073
01.07.2009, 17:52
0.00 руб.
0 5 1
Здравствуйте.

Скажите пожалуйста,как составить sql запрос( mysql ,апач ) или придумать что нибудь на php если необходимо следующее: при загрузке страницы , что бы группировались прочитанные , не просмотренные, и отмеченные как не обязательные к прочтению запросы авторизованного пользователя (каждый пользователь видит свой список просмотренных , не просмотренных и не обязательных к прочтению запросов)?

Тут не просмотренные -это те которые пользователь увидел первый раз и ещё не поставил птичку checkbox . idq запросов, которые ещё не отмечали в checkbox в таблицу status_query не заносятся(т.е. такие запросы надо выводить вначале,потом со статусом =2 ,потом со статусом=1)


Таблицы:

---------------------------------------------------------
табица1- list_query
idq | txtquery|

табица2 - users

iduser | name

табица3- status_query

ids | idq(id запроса из таблицы list_query) | reading(просмотренные =1 не обязательные к просмотру=2 ) | iduser (id пользователя для которого выводится его список -запроса из таблицы users )

---------------------------------------------------------------------------------------------------------------
Например, с сайта добавили 10 запросов в list_query, в таблицу status_query пользователь 'иванов' занёс статус для 7-ми вопросов - это значит ,что при следующем входе в админчасть у него должна быть следующая картинка перед глазами:
сначало идут 3-ри непросмотренных запроса потом 7-мь просмотренных и того у него перед глазами все 10-ть запросов которые в базе но сгруппированные.




Спасибо.

Обсуждение

Неизвестный
01.07.2009, 17:57
общий
"Например, с сайта добавили 10 запросов в list_query, в таблицу status_query пользователь 'иванов' занёс статус для 7-ми вопросов - это значит ,что при следующем входе в админчасть у него должна быть следующая картинка перед глазами:
сначало идут 3-ри непросмотренных запроса потом 7-мь просмотренных и того у него перед глазами все 10-ть запросов которые в базе но сгруппированные."

А пользователь 'петров' занёс статус для 4-х запросов - это значит ,что при следующем входе в админчасть у него должна быть следующая картинка перед глазами:
сначало идут 6-ть непросмотренных запросов потом 4-ре просмотренных и того у него перед глазами все 10-ть запросов которые в базе но сгруппированные.
Неизвестный
02.07.2009, 15:33
общий
это ответ
Здравствуйте, Dima1967.

1) SELECT * FROM list_query WHERE idq ! IN (SELECT idq FROM status_query WHERE iduser = $user); - вывод всех НЕЧИТАННЫХ $user'ом запросов;
2) SELECT * FROM list_query WHERE idq IN (SELECT idq FROM status_query WHERE iduser = $user ORDER BY reading DESC); - вывод всех ЧИТАННЫХ $user'ом запросов, упорядоченных по статусу (сперва - 2, потом -1) ;

как-то так...
5
Хоть там и небольшая ошибка синтаксиса (но она на конечный результат не влияет ) . Спасибо большое.
Неизвестный
02.07.2009, 16:29
общий
Выдаётся ошибка синтаксиса idq ! IN - знак отрицания не правильно указан - наверное...
Неизвестный
02.07.2009, 16:47
общий
понял ) , надо NOT - тогда нормально работает 1-запрос
Неизвестный
02.07.2009, 17:13
общий
ну да, виноват, поленился писАть "NOT" ))
PS Спасибо за "спасибо"
Форма ответа