Как организовать удаление пользователя из системы?

Статус
В этой теме нельзя размещать новые ответы.

LLlaMaH

Вот он я
Регистрация
31 Мар 2009
Сообщения
247
Реакции
320
Подскажите, пожалуйста.
Как организовать удаление пользователя из системы?
Уточнение.
В базе данных в таблицах есть поле userid. Можно как-нибудь удалить все строки из всех таблиц, где есть поле userid и оно равно x, без непосредственного перебора (delete from table1 where userid=x; delete from table2 where userid=x; ) всех таблиц?
Спасибо.
 
напиши небольшой скрипт
1) выполняешь запрос к бд
PHP:
show tables
получаешь список таблиц в своей бд
2) проходишь циклом по таблицам, выполняя запрос
PHP:
DESCRIBE table_name userid
если поле userid в данной таблице есть, то вернется одна строка и можешь делать удаление строк из этой таблицы
PHP:
delete from table_name where userid=x
если нет, результат будет пустой и ничего из этой таблицы удалять не надо :)
 
Спасибо за ответ.

Первый пункт прошел нормально (знаний и сообразительности хватило), а вот на втором вошел ступор. Если не трудно, можете написать полностью код второго пункта? (или сразу весь код с mysql_query и подобными штуками).
 
Вот рабочий код, только настроечки надо поменять
PHP:
<?
	//настройки соединения с бд
	$host = "localhost";
	$user = "user";
	$pass = "pass";
	$base = "base";

	$user_field = "userid";//поле, которое мы ищем в таблицах
	$id_for_del = 1;//id который надо удалить
	
	$dbconnect = mysql_connect($host, $user, $pass) or die(mysql_error());
	mysql_select_db($base, $dbconnect) or die (mysql_error());

	$tables = mysql_query("show tables", $dbconnect) or die(mysql_error());
	
	while($table = mysql_fetch_array($tables)) {
		$result = mysql_query("DESCRIBE `{$table[0]}` $user_field", $dbconnect) or die(mysql_error());
	
		if (mysql_fetch_array($result)) {
			mysql_query("delete from `{$table[0]}` where $user_field=$id_for_del", $dbconnect) or die(mysql_error());
		}
		
		mysql_free_result($result);
	}

	mysql_free_result($tables);
?>

если что-то осталось непонятным, задавайте вопросы
 
Спасибо большое. Все заработало.

Тему можно закрывать (считаю ее исчерпанной).
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху