[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление юзеров с БД .
fortuna
Вот сделал скрипт , удаляет нормально из БД .
Как сделать , чтобы он вывел N количество юзеров вы хотите удалить , если выбрал я не один четбокс .
Если я нажимаю да , то удаляеться из БД.
[selected_users] => Array ( [0] => 37 ) [action] => mass_delete


switch ($action){
case('mass_delete'):
foreach($selected_users as $key => $value){
selected_users_delet($value);
}
break;
}




 function selected_users_delet ($id){
db_connect();

$result = mysql_query("DELETE FROM categories WHERE id = '$id' ");
return $result;
}
T1grOK
Для чекбокса присвоить имя массив, где каждое значение checkbox будет элементом массива
<input type="checkbox" name="users[]" value="id">
<input
type="checkbox" name="users[]" value="id">



<?php
echo 'Удалено'. count($_POST['users']).' пользователей';


_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Valick
fortuna, у вас абсолютно неверный подход
запрос в цикле это уже повод для увольнения, а у вас еще и соединение с базой там же.
запрос на удаление должен быть один, по крайней мере для сотни юзеров (больше уже рука устанет чекбоксы чекать)
запрос должен собираться по частям скриптом на РНР и передаваться на обработку серверу MySQL

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

покажите структуру таблицы пользователей

_____________
Стимулятор ~yoomoney - 41001303250491
fortuna
1 user_id int(11) AUTO_INCREMENT
2 username varchar(40) cp1251_general_ci
3 password varchar(32) cp1251_general_ci
4 email varchar(50)
5 reg_date datetime
6 lastdate datetime
7 user_group smallint(5)
8 allow_mail int(1)
fortuna
Цитата (Valick @ 20.11.2012 - 07:06)
fortuna, у вас абсолютно неверный подход
запрос в цикле это уже повод для увольнения, а у вас еще и соединение с базой там же.
запрос на удаление должен быть один, по крайней мере для сотни юзеров (больше уже рука устанет чекбоксы чекать)
запрос должен собираться по частям скриптом на РНР и передаваться на обработку серверу MySQL

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

покажите структуру таблицы пользователей

Ну соединение с БД у меня в другом месте , это я выложил сюда так .
А как сделать удаление к примеру 3-5 юзеров без цикла ?
Valick
вот примерный код объясняющий принцип
для использования в реальных условиях нужно позаботиться о безопасности принимаемых данных
файл forma.php
<?php
include('conect.php');
$query="SELECT * FROM `users`";
$res=mysql_query($query);
if($res && mysql_num_rows($res)>0){
?>
<form action='del.php' method='POST'>
<?php
while($f=mysql_fetch_assoc($res)){
echo "<input type='checkbox' name='user[]' value='$f[user_id]'> $f[username] <br />";
}
?>
<input type='submit' name='mass_del' value='Удалить'>
</
form>
<?php
}else{
echo "Таблица пуста";
}
?>


файл del.php
<?php
if(isset($_POST[mass_del])){
if(isset($_POST[user]) && !empty($_POST[user])){
echo "<PRE>";
print_r($_POST[user]);
echo "</PRE>";
// собираем запрос
$limit="LIMIT ".count($_POST[user]);
$where="WHERE user_id IN (".implode(",",$_POST[user]);
echo $query="DELETE FROM `users` ".$where.") ".$limit;
include('conect.php');
$res=mysql_query($query) or die(mysql_error());
}
if(!isset($_POST[user]) || empty($_POST[user])){
echo "Нет выбранных элементов для удаления";
}
}

?>


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.