Итак, у меня есть такой сценарий: мне нужно запросить некоторые действия с номерами версий.Некоторые из них имеют только одну версию, другие имеют несколько.Все они происходят из формы, которая уже использует jQuery для добавления новых элементов формы и получения их значений.PHP Ajax уже работает.
Я думал о построении запроса вокруг переменной $case
php, вроде как:
$query = "SELECT DISTINCT activity_number, version_number, person_id, conclusion_date
FROM table1
WHERE fixed_parameter
$case
";
Сначала я боролся с "Мне нужно сделатьпеременная case, как =
, когда запрашивается одна версия, но мне нужно IN
, когда есть несколько. После этого мне пришло в голову, что я могу использовать IN
для обоих.
Но теперь я нене знаю, стоит ли мне пытаться обрабатывать случаи с несколькими версиями на стороне javascript или на стороне PHP, и это будет проще / лучше.
В настоящее время я отправляю все, поэтому получаю что-то вроде этогокак данные формы, передаваемые в PHP:
ativities: [{"activity_number":"12044","version_number":"4"},{"activity_number":"12044","version_number":"7"},{"activity_number":"41796","version_number":"0"}]
Если это будет отправлено в PHP, я получу:
AND CASE activity_number
WHEN 12044 THEN version_number IN (4)
WHEN 12044 THEN version_number IN (7)
WHEN 41796 THEN version_number IN (0)
END
, и это, очевидно, не сработает.мне нужно объединить их по Activity_number, чтобы получить что-то вроде {"activity_number":"12044","version_number":"4,7"}
. Я покопался, нашел пару странных сценариев, но они были слишком нестандартными, чтобы их ответы не помещались здесь.У меня был этот ответ Javascript - Уменьшить массив с помощью объектов с несколькими ключами , но на самом деле я не понял его логику, поэтому мне очень трудно адаптировать его к моим потребностям.