Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

Нужна ваша помощь в SQL


Рекомендуемые сообщения

Здравствуйте, нужна ваша помощь в запросе 2 таблиц. В общем один чел с форума мне помог, но в результате кое что не учли, и теперь есть проблема в запросе.
Вот запрос: 

"SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` tb2 ORDER by task_id ASC LIMIT 0, 300"

Но мне нужно сделать так, что бы выводились все задания. И сортировка была под каждое задание, если в базе "wf_done" например нет полей, то устанавливать status = 0
Не понимаю в чем ошибка, не особо дружу с sql прочитал кучу документации с работой с 2 таблицами, но видимо не понимаю. Либо если такое не возможно, предложите как переписать 2 таблицы, либо вариант использования

page_1.png

page_2.png

Ссылка на комментарий
Поделиться на другие сайты

Начнём с того откуда выводить данные с wf_done?

Или тебе нужно выводить каждому пользователю их задания>?

 

Цитата

если в базе "wf_done" например нет полей, то устанавливать status = 0

А как она у тебя вообще там заноситься? И что значит если нет полей, то там поставить значение статуса 0?

Лично я так понимаю!!!Есть 2 таблицы.В первой список всех заданий.Она называется wf_task.

Там только задания.Есть вторая таблица wf_done где хранятся все пользователи которые хотят выполнять задания.

Или же их там нет?И строка туда заноситься при нажатие выполнить задание>?

 

Если нужно вывести список всех заданий пользователя, то WHERE tb1.tasks_id = tb2.done_id AND  tb1.тут id текущего пользователя= tb2.user_id.

"SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` WHERE tb1.tasks_id = tb2.done_id AND  tb1.тут id текущего пользователя= tb2.user_id ORDER by task_id ASC LIMIT 0, 300"

Но это выведет все задания пользователя.

Чтоб отсортировать статус.Добавь  AND tb.2status = 0 или 1 или 2 итд.

"SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` WHERE tb1.tasks_id = tb2.done_id AND  tb1.тут id текущего пользователя= tb2.user_id AND tb.2status = 0 или 1 или 2 итд ORDER by task_id ASC LIMIT 0, 300"

Тогда отсортирует по id задания по id пользователя и по типу статуса .

Писал на коленке.Могут быть ошибки.Но смысл понятен думаю.Если что пиши в вк.Помогу когда свободен.

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, KirKMS сказал:

Начнём с того откуда выводить данные с wf_done?

Или тебе нужно выводить каждому пользователю их задания>?

 

А как она у тебя вообще там заноситься? И что значит если нет полей, то там поставить значение статуса 0?

Лично я так понимаю!!!Есть 2 таблицы.В первой список всех заданий.Она называется wf_task.

Там только задания.Есть вторая таблица wf_done где хранятся все пользователи которые хотят выполнять задания.

Или же их там нет?И строка туда заноситься при нажатие выполнить задание>?

 

Если нужно вывести список всех заданий пользователя, то WHERE tb1.tasks_id = tb2.done_id AND  tb1.тут id текущего пользователя= tb2.user_id.


"SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` WHERE tb1.tasks_id = tb2.done_id AND  tb1.тут id текущего пользователя= tb2.user_id ORDER by task_id ASC LIMIT 0, 300"

Но это выведет все задания пользователя.

Чтоб отсортировать статус.Добавь  AND tb.2status = 0 или 1 или 2 итд.


"SELECT * FROM `".PREFIX."_tasks` tb1, `".PREFIX."_done` WHERE tb1.tasks_id = tb2.done_id AND  tb1.тут id текущего пользователя= tb2.user_id AND tb.2status = 0 или 1 или 2 итд ORDER by task_id ASC LIMIT 0, 300"

Тогда отсортирует по id задания по id пользователя и по типу статуса .

Писал на коленке.Могут быть ошибки.Но смысл понятен думаю.Если что пиши в вк.Помогу когда свободен.

Таблица wf_done это список где пользователи выполнили свои задания, и если нет записи то автоматически выдавать status = 0

Такое возможно?

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...