Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria que quando um formulario fosse enviado, aepesar de ele criar uum numero sequencial pelo auto_increment, eu gostaria de criar outro.
Necessito dessa função pois precisamos separar os projetos por ano, e também por numero, tudo junto.
Então ficaria mais ou menos assim:
001/10
002/10
003/10
004/10
005/10
... assim por diante...
quando 2011 chegar, começaria:
001/11
002/11
003/11
004/11
005/11
... assim por diante...
tem como fazer isso? ja ouvi algumas pessoas falando em usar o MAX do SQL, mais acho que nao serve.
Obrigado
Continue utilizando o auto_increment para cada projeto ter uma identificação unica.
Agora te faço uma pergunta. Pra que mudar a forma que o campo de identificação do projeto funciona? Não seria melhor criar uma maneira "paralela" a isso? Olha, eu já perdi a conta de quantas pessoas fazem essa mesma pergunta que você aqui no iMasters hehehe.
Então eu te sugiro fazer o seguinte. Crie um campo chamado por exemplo projectDate, e defina o seu tipo como DATE ou DATETIME. Pronto! Agora o resto é tudo feito na consulta. Ela poderia ser feita mais ou menos assim:
SELECT projectId, projectName FROM projects ORDER BY YEAR(projectDate) ASC, projectId ASC
Faça alguns testes e depois diga o que achou.
O que lhe indico é fazer os seguintes campos:
ProjetoID (int) auto_increment
ID (varchar) formato 0001/10
Ano (int) 2010
Depois você deverá fazer uma consulta com o MAX com o WHERE ano = $ano
Então, irá gerar um novo id assim:
$novoID = ($numeromaximo + 1)."/".date("y");
Nós precisamos desse numero pois funciona como um protocolo, todos formularios serão impressos, e precisa ter esse numero numero/ano (001/10)
Se tiver alguma sugestão melhor do que essa que postei aqui, pode sugerir.
Equanto isso vou testar a opção do HJHESS.
Obrigado galera
>
Continue utilizando o auto_increment para cada projeto ter uma identificação unica.
Agora te faço uma pergunta. Pra que mudar a forma que o campo de identificação do projeto funciona? Não seria melhor criar uma maneira "paralela" a isso? Olha, eu já perdi a conta de quantas pessoas fazem essa mesma pergunta que você aqui no iMasters hehehe.
Então eu te sugiro fazer o seguinte. Crie um campo chamado por exemplo projectDate, e defina o seu tipo como DATE ou DATETIME. Pronto! Agora o resto é tudo feito na consulta. Ela poderia ser feita mais ou menos assim:
SELECT projectId, projectName FROM projects ORDER BY YEAR(projectDate) ASC, projectId ASC
Faça alguns testes e depois diga o que achou.
Nao entendi muito bem como fazer o MAX pegando o ultimo ano...
por enquanto meu select esta assim:
$result = mysql_query("SELECT MAX(sequencia) as 'numero' FROM minhatabela");
while ($row = mysql_fetch_array($result, $linkar)) {
$novonumero = $row['numero']+1;
$sql = "UPDATE minhatabela SET
sequencia = '".$novonum."'
where outrocampo = ".$_POST['outrocampo '];
mysql_query($sql,$linkar) or die ("<font style=Arial color=red><h1>Houve um erro na gravação dos dados</h1></font>". mysql_error());
}
mysql_free_result($result);
Mais nao fiz nada de validação em relação ao ano.
Na hora de listar eu faço assim:
<?php echo $linha['sequencia'];if($linha['sequencia'] != ""){echo "/".date("Y", strtotime($linha['data']));}else{} ?>
Mas dessa forma o numero nunca vai resetar quando mudarmos pra 2011.
Como posso estar fazendo isso?
Vlw
Você iria precisar fazer um SELECT utilizando MAX onde o ano de cadastro fosse igual ao atual.
Retornaria um número, depois basta fazer assim: $novo_id = ($numero_banco+1)."/".date("y")