Jump to content


Photo

Busca No Mysql


  • Faça o login para participar
2 replies to this topic

#1 carneiro

carneiro

    programador web

  • Usuários
  • 155 posts
  • Sexo:Não informado
  • Localidade:cascavel - pr
  • Interesses:programação e design para web

Posted 02/10/2006, 16:32

Aee blza..
Faz um tempão q to tentando resolver esse problema ja procurei por tudo e não consigo
É o seguinte

tenho uma tabela ( usr_dados )
nela tem os campos ( usr_id, usr_codigo )
usr_id é auto incremente
usr_codigo o usuario ira digitar, mas eu quero que o sistem mostre o proximo codigo caso ele nao tenha um para digitar

o problema eh o seguinte

se eu tiver
usr_id .... usr_codigo
01 .......... 0001
03 .......... 0002
04 .......... 0005
15 .......... 0025
17 .......... 0020
18 .......... 5555

Se eu fizer uma select simples ele ira mostrar o numero 5555 .. que eh o maior..

Como eu poderia fazer para mostra o 0003 que é o proximo da sequencia...
Se alguem puder me ajudar??

valeu

---------------------------------------------------------------

Consegui resolver o problema com o PHP..
Fiz uma select normal
$query = "SELECT 
								`ds_codigo`
							 FROM
							 	`docs_usr_dados`
							 ORDER BY
							 	`ds_codigo`
							 ASC
							 ";

E o codigo php
foreach ($vetor as $key=>$item){
			   			if($item+1 < next($vetor) && next($vetor)){
			   						$newcod = $item+1;	
			   						break;
						}	
						
}

onde $vetor recebeu todos os codigos ordenados


Se alguem tiver uma solução só usando SQL, posta ai =)

Edição feita por: carneiro, 02/10/2006, 17:27.

Descrição
Alexandre Magno Semmer
www.alexandresemmer.com
Programador Web

Programação
ASP, PHP, JavaScript, CSS, SQL, JAVA, C, Paschal, Ajax, XML
Usuário
Posted Image
Links
Ajax Online - FireBug (Firefox) - Documentação PHP - Documentação Prototype - Documentação jQuery - Script.Aculo.Us

#2 jfsso

jfsso

    12 Horas

  • Usuários
  • 145 posts
  • Sexo:Não informado
  • Localidade:Tsukuba
  • Interesses:JAVA - PHP - RUBY - PERL - PYTHON - MYSQL

Posted 02/10/2006, 17:26

voce quer selecionar codigos que ainda nao foram digitados?

crie uma tabela com todos os codigos e use:
SELECT codigos.codigo FROM tabela RIGHT INNER JOIN tabela_codigos ON (tabela.codigo = tabela_codigos.codigo) AS codigos WHERE tabela.codigo not null ORDER BY codigos.codigo ASC LIMIT 1;

nao testei esse query.. qualquer erro vai ser facil de resolver lendo o manual. a criacao de uma nova tabela e' necessaria pra usar esse metodo.
João

#3 aimola

aimola

    Webdeveloper

  • Usuários
  • 471 posts
  • Sexo:Masculino
  • Localidade:Sampa

Posted 02/10/2006, 17:40

Eu jamais usaria esta lógica num campo onde o usuário pode "digitar" um numero.

Mesmo que consiga pegar a próxima ocorrência (nº 3 por exemplo), aí vai o 4º usuario e digita 55..... como fica?

Edição feita por: aimola, 02/10/2006, 17:41.

Que os passos de hoje sejam maiores que os de ontem
e que os passos de amanhã sejam mais largos que os de hoje.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq