У меня есть динамически сгенерированная таблица, в которой перечислены все пользователи данной группы, и каждый пользователь имеет флажок рядом с их именем. Администратор группы может выбрать/отменить выбор этих флажков, чтобы включить/исключить пользователя. В таблице MySQL есть столбец статуса для каждого пользователя, который является либо 0
, либо 1
. Я использую скрытые значения для обработки неконтролируемого состояния ящиков и POST данных в виде массива с уникальным идентификатором каждого пользователя в качестве ключа.Использование php-массива для генерации одного запроса MySQL INSERT
Так мои данные POST массив, который выглядит следующим образом:
Array ([105] => 1 [106] => 1 [107] => 0 [108] => 0 [109] => 1)
Теперь мне нужно обновить БД. Вот как я хочу запрос посмотреть:
INSERT INTO users (uid,status) VALUES (105,1),(106,1),(107,0),(108,0),(109,1)
ON DUPLICATE KEY UPDATE status=VALUES(status);
Конечно, это ничего не ВСТАВИТЬ, но он обновляет каждую строку с помощью одного запроса.
Что я не могу понять: как использовать массив для генерации запроса. Особенно учитывая, что количество пользователей (количество элементов в массиве) будет отличаться.
После дополнительных исследований, кажется, что мой вопрос может сводиться к:
Можно ли использовать implode
, чтобы превратить этот массив:
Array ([105] => 1 [106] => 1 [107] => 0 [108] => 0 [109] => 1)
в эту строку:
(105,1),(106,1),(107,0),(108,0),(109,1)
с гибкостью иметь больше или меньше элементов в массиве?
Я не могу понять, почему переменное количество элементов проблема - вы знаете, что существует конструкция петли, не так ли? – CBroe
Просто не помещайте ',' в конце значений, проверяя, соответствует ли 'loop_index + 1'' length' массива. – plalx
Будучи неопытным, оправдывает понижение? Спасибо за понимание. – David