Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Limite de dados, deletar mais antigo na tabela

26-05-2009 07:21

O objetivo desse script é manter sempre um número fixo de linhas em determinada tabela, sendo que, quando houver um novo insert, o cadastro mais antigo é deletado, e então adicionado o novo.

Esse script trabalha com base em um campo chamado: id ( auto increment )

Vamos supor, você tem 10 registros em sua tabela, quer manter sempre os 10 mais novos nela, então, quando for fazer o novo insert você tem que fazer o seguinte logo após o insert.

Contando o número de linhas existentes

$selec = "SELECT id FROM minhatabela"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); $quantos = mysql_num_rows($exec);

Note o seguinte, você deseja manter 10 linhas, como o select está após o insert, $quantos deve vir com o valor 11, ou seja, mais do que você quer. Então usamos o seguinte:

if($quantos > 10) { $deleta="DELETE FROM minhatabela ORDER BY id ASC LIMIT 1"; mysql_query($deleta) or die("Erro ao manter a tabela em 10 linhas"); }

Esse script acima vai fazer a verificação em $quantos, se maior que 10, faz o delete, sendo que ele ordena o delete em ordem crescente pelo id, ou seja, pega o id mais novo, somente um id, e deleta ele.

Se antes do insert eu tinha:
1,2,3,4,5,6,7,8,9,10

Com o insert eu fico com
1,2,3,4,5,6,7,8,9,10,11

E depois de rodar o script, fico com
2,3,4,5,6,7,8,9,10,11
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado