Ir para conteúdo

POWERED BY:

Arquivado

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

avcintra

ordernar registros

Recommended Posts

Olá a todos,Não tenho a menor idéia de como fazer isso, gostaria de ordenar os registros do banco. No banco existe os seguintes campos:TituloDescricaoOrdemQuando o usuario for fazer um novo registro ele tem a opção de escolher em que numero ele quer que apareça o registro que ele está fazendo, ou seja, o banco tem 10 registros e ele está cadastrando o decimo primeiro, quando for cadastrar ele escolhe que esse registro fique em terceiro, automaticamente troca o numero dos outros registros... como faço isso?Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tiozinho primeiramente este campo ordem não poderia de jeito nenhum ser autonumerico e depois voce deveria controlar muito bem o seu script para fazer tais alteraçõesum exemplo seria voce quer inserir na posição 5 então antes de inserir voce tem de atualizar todos que são maior ou igual a 5 para seu valor mais um e depois insere o 5 entende???

Compartilhar este post


Link para o post
Compartilhar em outros sites

poxa tizinho é bem simples...

 

a posição do novo registro voce deve passar

 

Posicao = Request("Posicao")

digamos que seja 5 antes voce deve atualizar tudo que for maior ou igual a 5 para isso mais 1

 

"UPDADE TABELA SET Ordem = Ordem + 1 WHERE Ordem >= " & Posicao

depois disso é só inserir o registro

 

"INSERT INTO TABELA (Ordem) VALUES (" & Posicao & ")"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou o script mas ele não funciona da forma inversa, ou seja, quando tento pegar um registro e coloca-lo numa posição maior ele nao troca para posicao certa... se pego o 1º lugar e tento coloca-lo em 5º lugar ele fica em 4º lugar....

 

 

<!--#include file="conexao.asp" --><%titulo	= limpaTexto(request.form ("titulo"   ))descricao = limpaTexto(request.form ("descricao"))ordem	 = limpaTexto(request.form ("ordem")) url	   = limpaTexto(request.form("url"))%><%SQL = "UPDATE cinco SET ordem=ordem + 1 WHERE ordem >= " & ordemSet tba = bco.Execute(SQL)SQL = ""tba = ""SQL="UPDATE cinco SET  "SQL=SQL & "ti_curiosidade ='" & titulo & "',"SQL=SQL & "url ='" & url   &  "',"SQL=SQL & "ordem ='" & ordem & "',"SQL=SQL & "desc_curiosidade ='" & descricao & "'"SQL=SQL & "WHERE cd_curiosidade =" & session("cd")set tba = bco.execute(SQL)%><!--#include file="fecha_conexao.asp" -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas isto que te falei era só para novos registros...para alterar a ordem entre os registros voce com certeza precisará de uma variavel auxiliar para te ajudar e a logica mudará um pouco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo se voce vai inserir um novo registro na posição 5 como te falei... é só atualizar tudo que for maior ou igual a 5 para seu valor mais 1 e depois inserir o 5agora se voce for trocar a ordem de dois registros ja existentens voce deve armazenar a posição do primeiro ou então todos os seus dados para uma posivel exclusão posterior inclusão assim voce poderia mudar a ordem do outro e depois inclui o que voce exclui usando a mesma tecnica usada para novos registros

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.