Olá galéra e WebMaster!
Minha dúvida de hoje é um pouco de mysql e um pouco de PHP.
Tenho minha tabelinha que tem uma coluna chamada nr_ordem.
Tenho meus registros e no php eu fiz 2 imagens... uma setinha pra cima e uma pra baixo....
por lógica eu pensei no seguinte...
Meu problema ta sendo o seguinte... quando ele clicar eu tinha que ter uma query que ia analisar se existe antes e depois dele dados e se existe tem que alterar todos
os outros também....
por exemplo...
Existem 3 linhas... 1, 2, 3...
Quando eu clicar pra subir a 2... a 1 tem que ocupar o lugar da 2...
Quando eu clicar pra 2 descer a 3 tem que ir pro lugar da 2.... Entenderam?
Segue até onde consegui fazer.
if($ordem == 'cima')
{
$nr_ordem = $_GET['nr_ordem'] - 1;
//EXECUTA A QUERY QUE FAZ O UPDATE
$query_ultimo = pg_query($conexao, "UPDATE tb_questao SET nr_ordem='$nr_ordem' WHERE id = $questaoid");
header("Location: ver_questoes.php?id_cliente=$id_cliente&qid=$qid&mensagem=Questão alterada com sucesso!");
}
else if($ordem == 'baixo'){
$nr_ordem = $_GET['nr_ordem'] + 1;
//EXECUTA A QUERY QUE FAZ O UPDATE
$query_ultimo = pg_query($conexao, "UPDATE tb_questao SET nr_ordem='$nr_ordem' WHERE id = $questaoid");
header("Location: ver_questoes.php?id_cliente=$id_cliente&qid=$qid&mensagem=Questão alterada com sucesso!");
}

Reordenar Linhas
Started By SiriusRed, 09/02/2011, 09:52
1 reply to this topic
#1
Posted 09/02/2011, 09:52
Saber Numk é Demais
#2
Posted 09/02/2011, 13:10
Você vai fazer uma troca.
O 3 pelo 2, e o 2 pelo 3. Você não precisa saber o que vem antes. Só o que vem depois.
Você está levando também o ID não está ? Ele é auto numeração ?
Então faça um Update, selecionando todos os registros que vem depois desse ID, ID > $ID, usando um WHILE do Select.
O 3 pelo 2, e o 2 pelo 3. Você não precisa saber o que vem antes. Só o que vem depois.
Você está levando também o ID não está ? Ele é auto numeração ?
Então faça um Update, selecionando todos os registros que vem depois desse ID, ID > $ID, usando um WHILE do Select.
$x = $nr_ordem + 1; // ISSO é IMPORTANTE $sql = "select * from tabela where id > $id"; $exe = mysql_query($sql); while($res = mysql_num_rows($exe)){ $upd = "update tabela set nr_ordem = $x where id > $id and id = $res['id']"; $exec = mysql_query($upd); }
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)