Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Ronan

selecionar o maior entre os ja cadastrados

Recommended Posts

Pessoal

 

Estou fazendo um sisteminha onde preciso definir ordens, em outras palavras, tenho o banco de dados com a tabela posicao

 

valores aj cadastrados

 

1

2

3

 

quero inserir uma nova (4)

 

como faço para ele saber que a ultima é a "3" .. mais uma coisa... se eu quiser jogar essa "4" (que é a nova) como valor 2, ficaria 1, 2, 2, 3 ... teria algum jeitinho tambem de que a ordem de todas se adaptaria a tal inserção

 

Em vez de ficar assim

 

1

2 - nova

2

3

 

fica assim

 

1

2 - inserida

3 - atualizada de 2 para 3

4 - atualizada de 3 para 4

Compartilhar este post


Link para o post
Compartilhar em outros sites

você teria q inserir e depois dar um upload em todos os registros modificando a ordem de cada umpro novo ser antes dos outros faz no select ORDER BY data DESC, claro q pra isso você tem q ter a data no bco, ou entao CODIGO DESC mesmo, pq chave primaria deve ter...Um abrazzz qqr duvida posta ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

se voce quer inserir algo na posicao "2" e nao quer que se repita voce deve antes fazer um UPDATE em todos os registros que tenham este valor maior ou igual a "2" para o seu proprio valor mais 1, ai depois pode inserir de boa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal

 

Me dêem um help!!

 

Seria +/- os seguintes procedimentos

 

Na pagina do formulário:

 

1. Recupero do banco de dados a quantidade de registros do menu <input hidden>

2. Recupero do banco de dados o valor atual do registro que está sofrendo a alteração e armazeno em posicao atual

3. Faço a comparação se é maior ou menor ao já cadastrado

 

4. Caso seja menor:4.1 Começo o looping aqui	4.2 Da um select buscando pelos registros procurando pela posição nova com a condicao do codigo que vira seja diferente do que esta sendo editado		4.3 Encontrou?			4.4 Verifico a partir dela (posicao nova) dando um update na tabela mudando somente a posição (que seria a posição atual (deste select) + 1)		4.5 Não achou?			4.6 Já se normalizou, fecha a rotina		4.7 Encerra o Se4.8 Termino o looping aqui5. Caso seja maior: 5.1 Começo o looping aqui	5.2 Da um select buscando pelos registros procurando pela posição nova com a condicao do codigo que vira seja diferente do que esta sendo editado		5.3 Encontrou?			5.4 Verifico a partir dela (posicao nova) dando um update na tabela mudando somente a posição (que seria a posição atual (deste select) - 1)		5.5 Não achou?			5.6 Já se normalizou, fecha a rotina		5.7 Encerra o Se5.8 Termino o looping aqui

 

 

Ou esqueci/confundi alguma coisa...?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei chegar a algo... deu isso

 

set rs_atualiza = server.CreateObject("adodb.recordset")set rs_grava = server.CreateObject("adodb.recordset")if varposicao_atual < varposicao then 'se o valor a cadastrar for menor que o atual	y = varposicao - varposicao_atual 	For x = 1 to y		sql_atualiza = "select * from conteudo where posicao ="&x&" and codigo <> "&varcodigo		set rs_atualiza = conexao.execute(sql_atualiza)		if rs_atualiza.eof = false then		varatualiza = varposicao_atual + 1			sql_grava = "update conteudo set posicao ="&x&" where codigo="&rs_atualiza("codigo")			set rs_grava = conexao.execute(sql_grava)			x = x + 1		else			response.Write "Concluido"			exit for		end if	next	'response.Write varposicao_atual&" + "&varposicao&" este é o atual menor que o posicao<br><br>X = "&x&", y = "&yelse 'se o valor a cadastrar for maior que o atual	y = varposicao - varposicao_atual	For x = 1 to y		sql_atualiza = "select * from conteudo where posicao ="&x&" and codigo <> "&varcodigo		set rs_atualiza = conexao.execute(sql_atualiza)		if rs_atualiza.eof = false then			varatualiza = varposicao_atual - 1			sql_grava = "update conteudo set posicao ="&varatualiza&" where codigo="&rs_atualiza("codigo")			set rs_grava = conexao.execute(sql_grava)			x = x + 1		else			response.Write "Concluido"			exit for		end if	next	'response.Write varposicao_atual&" - "&varposicao&" este é o atual maior que o posicao<br><br>X = "&x&", y = "&yend if call fecha_conexao

 

mas fica carregando... só isso.. num faz nd :/

 

alguem tem ideia q possa ser??

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.