Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Severino

[Resolvido] Deletar usuario, e também apagar os registros de outr

Recommended Posts

Bom dia pessoal, eu sei que para excluir um usuário eu faço da seguinte maneira

Delete from usuario WHERE id = '$id';

Então eu criaria um loop para excluir todos os dados das outras tabelas onde id_usuario = '$id';

 

Mas e se eu quizer deletar por data de acesso.

Por exemplo:

 

Quero excluir usuarios inativos então faço um where data_acesso <= '$datadesejada';

 

Como eu faço para apagar os registros das outras tabelas, se com certeza vai ser deletados para usuários(id's) que eu não sei...

 

 

Obrigado e agradeço sugestões ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

você vai fazer a seguinte forma... você vai fazer esse WHERE para fazer a sua busca, e nala você vai pegar o ID do usuário.. e dai quando você estiver percorrendo o while você vai apagangando os registros tanto da tabela de usuario quanto das demais...

 

 

$sql = mysql_query("SELECT * FROM usuarios WHERE data_acesso<='2010-10-01'");
while ($row = mysql_fetch_array($sql)) {
  $id = $row["usr_id"];
  mysql_query("DELETE FROM usuarios WHERE usr_id='$id'");
  mysql_query("DELETE FROM noticias WHERE usr_id='$id'");
  mysql_query("DELETE FROM agenda WHERE usr_id='$id'");
  mysql_query("DELETE FROM compras WHERE usr_id='$id'");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara... acho que tem forma melhor..

 

pesquise por ONDELETE

 

e essa consulta, ainda poderia ser otimizada para:

DELETE FROM noticias WHERE usr_id IN( SELECT usr_id FROM usuarios WHERE data_acesso<='2010-10-01' )
com a subquery, deleto de uma vez só, todos os usuarios que precisar dessa tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.