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


Moderador: web

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

Manter ID em ordem após deletado

22-05-2007 23:22

Quem usa ID em banco de dados, geralmente auto_increment, sabe que ao deletar um ID, aquele espaço do ID fica vazio.

Para solucionar isso montei um script, que ao listar os dados do banco de dados, ordena também o mesmo, com base em uma variável com valor 1, ou seja, a cada select feito no banco de dados, os mesmos vão seguir a ordem: 1, 2, 3...

Criei uma tabela chamada ( dados ) com os campos: nome e id ( id é auto_increment ).

<?php /* Dados da conexão */ include("conexao.php"); ?> <?php /* Busca de todos itens do banco de dados */ $selec = "SELECT * FROM dados ORDER BY id ASC"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); $total = mysql_num_rows($exec); ?> <?php /* variável a ser incrementada a cada novo registro ela permitirá cada id ficar em ordem crescente */ $i = 1; ?> <?php while($dados=mysql_fetch_array($exec)) { $id = $dados['id']; $nome = $dados['nome']; /* abaixo a linha que atualiza os dados da tabela aumentando o id a cada registro */ $update="UPDATE dados SET id='$i' WHERE nome='$nome'"; mysql_query($update) or die(mysql_error()); $i++; /* exibindo os dados */ echo "$id | $nome<br>"; } /* aqui o valor do auto_increment é atualizado e passado para o MySQL */ $auto_icrement="ALTER TABLE bancodedados.tabela AUTO_INCREMENT=$total"; mysql_query($auto_icrement) or die(mysql_error()); echo "total de $total dado(s)."; ?> <center><a href="?">atualizar</a></center> <form action="?deleta=ok" method="POST"> retirar ID nº... <input type="text" name="id" value=""> <input type=submit> </form> <?php /* exemplo para deletar determinado id do banco de dados */ $deleta = $_GET['deleta']; if($deleta=="ok") { $id = $_POST['id']; $insertadmin="DELETE from dados WHERE id='$id'"; mysql_query($insertadmin) or die(mysql_error()); echo "<script>alert('Deletado');location.href='?';</script>"; } ?> <?php /* fechamento da conexão */ mysql_close($conexao); ?>

0
A melhor hospedagem para o seu site HostGator!

Quem está online

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