Я работаю над таблицей «Многие ко многим», и я исправил проблему, из-за которой я не мог получить записи. Теперь я пытаюсь удалить записи, когда это необходимо.
У меня есть сайт, где дети могут быть связаны с событием. В случае, если ребенок был случайно добавлен, я хочу иметь возможность удалить ребенка. Они добавляются через флажок следующим образом:
<input type="checkbox" name="eventChildren[]" id="childId_12" />
<input type="checkbox" name="eventChildren[]" id="childId_13" />
<input type="checkbox" name="eventChildren[]" id="childId_14" />
У меня есть несколько флажков, которые предварительно проверены, если ребенок уже был добавлен.
У меня есть три таблицы (не уверен, что это актуально):
DB:
- children
- events
- eventChildren
Когда я сохраняю запись, я проверяю, чтобы не добавлять дубликаты в мою таблицу eventChildren
. Я знаю, если записи уже есть в базе данных, но не отправлены из формы, тогда ребенок удаляется из списка ... и я не могу понять, как отловить это подмножество.
Пример кода:
// $eventChildren comes from the form above name="eventChildren[]"
// $eventId is passed into the function
$currentChildren = $this->eventChildren->GetEventChildren(array('eventId' => $eventId));
// Loop through all submitted children
foreach ($eventChildren as $childId)
{
// Loop through all existing children
foreach ($currentChildren as $currChild)
{
// If the child ID's do not match then it's a new record
if ($currChild->childId != $childId)
{
$this->eventChildren->AddEventChildren(array(
'eventId' => $eventId,
'childId' => $childId
));
}
}
}
Когда форма отправлена, я получаю возврат, который забирает все записи из таблицы eventChildren
, где совпадает eventId
.
eventChildren (return)
- [0]
eventChildrenId => 1
childId => 12
eventId => 4
- [1]
eventChildrenId => 2
childId => 13
eventId => 4
- [2]
eventChildrenId => 3
childId => 14
eventId => 4
submittedChildren
- [0] => 12
- [1] => 13
Как можно сказать, на основе массива submittedChildren
удалить запись, где eventChildrenId = 3
?
Надеюсь, это имеет смысл. :)