условное объединение нескольких таблиц базы данных Moodle

Вообще говоря, вы не должны возвращать выбранную цену на сервер. HTML-формы можно легко подделать. Гораздо безопаснее отправить выбор пользователя обратно на сервер, который также знает, сколько он должен стоить.

В принципе, проверка Javascript (по сути, это) удобна, но не следует доверять. У вас уже есть вход для выбора финиша. Просто отправьте это обратно на сервер. Таким образом, ваш сайт будет работать (или работать лучше), если у пользователя отключен Javascript.

0
задан Aman Ullah 19 March 2019 в 14:24
поделиться

2 ответа

Надеюсь, это поможет вам -

SELECT completion.userid, completion. coursemoduleid, completion. timemodified, 
module.course, user. idnumber as student_id, m.name as module_name,(CASE WHEN (a.name != '') THEN a.name ELSE (CASE WHEN (ass.name != '') THEN ass.name ELSE q.name END) END) as activity_name
FROM `mdl_course_modules_completion` as completion
join mdl_course_modules as module 
on completion. coursemoduleid = module.id
join mdl_user as user on user.id = completion.userid
join mdl_modules as m on completion. coursemoduleid = m.id
left join mdl_assign as a on a.id = m.id
left join mdl_assignment as ass on ass.id = m.id
left join mdl_quiz as q on q.id = m.id
where m.name in ('assign','assignment','quiz')
LIMIT 0, 30
0
ответ дан Suniti Yadav 19 March 2019 в 14:24
поделиться

Не существует такого понятия, как «условное соединение». Вместо этого вы можете использовать два левых соединения и COALESCE ():

SELECT completion.userid,
  ...
  COALESCE(activity1.name, activity2.name) as activity_name -- SELECT first non NULL value
FROM `mdl_course_modules_completion` as completion
...
LEFT JOIN mdl_assign activity1
  ON  activity1.id = m.id    -- JOIN condition
  AND module_name = 'assign' -- CASE condition
LEFT JOIN mdl_assignment activity2
  ON  activity2.id = m.id        -- JOIN condition
  AND module_name = 'assignment' -- CASE condition
0
ответ дан Paul Spiegel 19 March 2019 в 14:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: