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


Moderador: web

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

Reordenar posição de dados por ID

25-07-2009 21:51

Depois de muito estudo, estou postando aqui um script que montei para reordenar os dados de uma tabela.

A idéia do script é a seguinte:

Eu tenho o seguinte

id - info
1 - a
2 - b
3 - c

Eu quero ter links para subir o posicionamento das linhas, por exemplo

1 - a
2 - b | SOBE
3 - c | SOBE

Ou seja, se eu clicar em SOBE no id 3, a ordenação passa a ser a seguinte

1 - a
2 - c | SOBE
3 - b | SOBE

Você notou que a coluna info submiu, ou seja, b foi para o lugar de c, e vice-versa, e o id se manteve em ordem.

Para quem quer estudar o script para adaptar em algum sistema, crie uma tabela chamada datas e IMPORT o seguinte

* Um detalhe, quando você troca a segunda linha com a primeira, a primeira passa a ser a última linha

CREATE TABLE `datas` (   `id` INT(10) NOT NULL AUTO_INCREMENT,   `info` VARCHAR(1) COLLATE latin1_general_ci NOT NULL,   UNIQUE KEY `id` (`id`) ) INSERT INTO `datas` (`id`, `info`) VALUES (1, 'a'), (2, 'b'), (3, 'c');

Crie um arquivo chamado conecta.php com o seguinte:

<?php $conexao = mysql_connect("localhost", "seulogin", "suasenha") or die(mysql_error()); $db = mysql_select_db("seubd"); ?>

Agora vai o script principal, chamarei de principal.php

<?php include("conecta.php"); if($_GET['atualiza']) { extract($_GET); include("conecta.php"); // pega id anterior $selec = mysql_query("SELECT id FROM datas WHERE id < $atual ORDER BY id DESC LIMIT 1") or die(mysql_error()); $anterior = mysql_fetch_array($selec); // pega ultimo id $selec2 = mysql_query("SELECT id FROM datas ORDER BY id DESC LIMIT 1") or die(mysql_error()); $ultimo = mysql_fetch_array($selec2); // atualiza id $atualiza = mysql_query("UPDATE datas SET id = ".($ultimo[id]+1)." WHERE id=".$anterior[id]."") or die(mysql_error()); // ordena ids $atu = "SELECT id, info FROM datas ORDER BY id ASC"; $exec = mysql_query($atu, $conexao) or die(mysql_error()); $i = 1; while($dados=mysql_fetch_array($exec)) { extract($dados); $update="UPDATE datas SET id='$i' WHERE info='$info'"; mysql_query($update) or die(mysql_error()); $i++; } // atualiza esse documento header("Location:principal.php"); } $selec = "SELECT id, info FROM datas ORDER BY id"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); $total = mysql_num_rows($exec); $i = 0; while($campos=mysql_fetch_array($exec)) { extract($campos); $i++; if($i==1) { echo "$info - primeiro<br>"; } else { echo "$info - <a href='?atualiza=sim&atual=$id'>SOBE</a><br>"; } } ?>

0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:

Quem está online

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