У меня есть область администрирования, где они могут удалять несколько пользователей за раз. Это часть кода, который обрабатывает удаление. В основном он проходит через идентификаторы пользователя и удаляет все отмеченные флажки.Цикл forach и построение массива
if ($_POST['doDelete'] == 'Delete') {
if (!empty($_POST['u'])) {
foreach ($_POST['u'] as $uid) {
$id = escape($uid);
$delete = Nemesis::query("DELETE FROM users WHERE id = '{$id}' AND id <> '{$_SESSION[user_id]}'");
if (!$delete) {
$msg->add('e', QUERY_ERROR);
redirect('users.php');
exit();
}
}
}
/* we need a way to iterate over users deleted */
$msg = new Messages();
$msg->add('s', QUERY_DELETE_SUCCESS);
redirect('users.php');
exit();
}
function get_user_name_from_id($user_id)
{
if ($_SESSION['user_level'] == ADMIN_LEVEL) {
$viewUserMod = 1;
} else {
$config = Nemesis::select("usr_view_cm", "config");
$row_config = $config->fetch_assoc();
$viewUserMod = $row_config['usr_view_cm'];
}
if (is_numeric($user_id) && $viewUserMod == 1) {
$sql = Nemesis::select("full_name", "users", "id = {$user_id}");
if ($sql->num_rows > 0) {
$user_name = $sql->fetch_assoc();
return $user_name['full_name'];
} else {
// user name cannot be matched with db, either error, or most likely user was deleted
return 'User ' . $user_id;
}
} else {
return $user_id;
}
}
Где это говорит QUERY_DELETE_SUCCESS
я хотел выводить что-то вроде «Deleted Боб, Джек, Тим» .etc У меня есть функция, которая использует идентификатор пользователей и получает их имена. Проблема в том, что после завершения итерации. Очевидно, что те пользователи больше не существуют в базе данных, и я не могу их назвать. Есть ли способ запустить эту функцию во время цикла и построить строку или массив. Это может быть выведено вместо сообщения?
Что означает, что вы должны вызвать вашу функцию GetName и использовать его, чтобы создать массив удаленных имен пользователей __before__ выполнение каждого оператора delete –