Обновление флажка php, вставка, удаление записей MySQL - PullRequest
0 голосов
/ 08 января 2011

Я довольно долго искал это, но, похоже, ничего не появилось, что странно, потому что я думаю, что это было бы чем-то, что довольно легко реализовать. В основном у меня есть список элементов, которые выбирает пользователь, и я хочу обновить значения в базе данных в соответствии с флажками, выбранными в основном в следующих сценариях:

Идентификатор, присвоенный в массиве флажков, уже находится в БД, и ничего не должно происходить или его можно обновить с тем же значением.

Идентификатор, присвоенный в массиве флажков, необходимо добавить в базу данных.

Идентификатор ISN не назначен в массиве флажков и поэтому должен быть удален из БД.

У кого-нибудь есть какой-нибудь код, с которым они работали?

EDIT:

таблица проста с двумя обновляемыми вещами:

id_text и id_product

массив из $ _POST:

Array ( [text] => 
         Array ( [0] => 8 [1] => 1 [2] => 2 ) // the values that need to be inserted, updated, or deleted if they don't exist here.
         [textValue] => ALL OF THEM
         [id] => 33 // the 'id_product value'
         [update] => update ) 

Ответы [ 2 ]

0 голосов
/ 08 января 2011
  1. сделать замену для каждого пройденного идентификатора. Заменить ведет себя как вставка я запись не существует и как обновление, если оно существует. Я не могу дать вам больше подробностей, потому что я не знаю структуру вашего стола
  2. Удалите все элементы с идентификатором, которого нет в вашем массиве. Вы можете выбрать те с "в":

    ... ГДЕ id_product НЕ ВХОДИТ (1,3,5,8) И ......

    Вы можете легко сгенерировать это, используя

    $ idCondition = 'id_product NOT IN ('. Implode (',', $ yourArrayName). ')';

О замене:

http://dev.mysql.com/doc/refman/5.1/de/replace.html

Об IN:

http://www.webdevelopersnotes.com/tutorials/sql/tutorial_mysql_in_and_between.php3

РЕДАКТИРОВАТЬ: Я только что понял, что у некоторых людей могут быть возражения против моего определения ЗАМЕНИТЬ. На самом деле REPLACE удаляет строку, если она уже существует, и затем выполняет INSERT.

0 голосов
/ 08 января 2011

Правда, без кода или базы данных довольно сложно помочь, но если я правильно понимаю, вы можете просто:

  1. Удалить все значения в БД.
  2. Перебрать идентификаторы, переданные в POST или GET, и вставить их в БД.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...