HI У меня есть цикл for, который проходит через ids. По одной из других причин цикл for не выполняется.
$med_uuids = $_POST['med_uuids'];
$med_uuids_length = count($med_uuids);
for($x=0; $x < $med_uuids_length; $x++){
$query = mysqli_query($connection, "DELETE FROM medicine WHERE uuid =
'$med_uuids[$x]'");
}
//close connection to db
mysqli_close($connection);
Любая помощь будет оценена по достоинству.
У вас нет массива, а просто строка.
$ids = explode(',', $_POST['med_uuids']); // make an array
foreach ($ids as $id) {
mysqli_query($connection, "DELETE FROM medicine WHERE uuid = '" . mysqli_real_escape_string($connection, $id) . "'");
}
med_uuids[]
именования параметра med_uuids[]
(в квадратных скобках). Таким образом, $_POST['med_uuids[]']
будет массивом, вам не нужно делать explode
.
Если вы получите список с разделителями-запятыми (124,121,45,12,35), то вы можете сделать что-то вроде этого
DELETE FROM medicine WHERE uuid IN (124,121,45,12,35)
Это поможет вам выполнить задачу за один раз, и ваша БД не будет забита несколькими запросами.
$_POST['med_uuids'];
на самом деле это массив, попробуйте использоватьforeach()
; тогда вам не нужно беспокоиться о пропавших ключах. Если это не массив, то вам нужно сделать его одним