Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Galera! Hoje estou com uma dúvida. Tenho uma tabela no Banco de Dados, com o nome de "OS". Nessa tabela tem 2 colunas como por exemplo Numero do Serviço, e Descrição. Até agora Ok. Eu gostaria de pegar o ultimo valor cadastrado na coluna Numero de Serviço, e desse um Incremento ++. Exemplo do DB:
Numero de Serviço | Descrição
20 Teste
Gostaria que o PHP Pegasse o numero 20 (Ultimo valor cadastrado) e desse um incremento de +1 (Ficaria por exemplo 21), no meu código PHP. Derrepente eu desenvolveria isso com um Laço de Repetição, alguém pode me ajudar?
Tentei por exemplo:
<?php
$numero = 20; // Exemplo, poderia ser uma consulta SQL
$novo_numero = $numero+1;
echo $novo_numero;
?>
E consegui. Alguém tem alguma sugestão, para melhorar o Código?
Sim, mas eu gostaria de fazer isso no meu código, que aparecesse para o usuário o Numero de Serviço. Eu usei por exemplo:
<?php
$numero = 20; // Exemplo, poderia ser uma consulta SQL
$novo_numero = $numero+1; // Adiciona +1
echo $novo_numero;
?>
E deu certo. Teria alguma sugestão, para melhorar o código?
Você quer mostrar o número ANTES de fazer a operação no banco ou DEPOIS?
Se for antes, MySQL não tem sequences nativas como no PostgreSQL, onde você poderia primeiramente recuperar um número e utilizar sem se preocupar com colisão.
Do jeito que está fazendo, você pode ter colisão de números (enquanto um usuário está usando, o outro vem e utiliza o sistema, invalidando o número do primeiro usuário).
Se for DEPOIS, Salve no banco primeiro e pegue o número depois. Para isto, use LastInsertId().
É muito simples você solucionar esse dilema. Faz um select, com limite de 1 registro com ordem decrescente por id, ou seja o último registro (id) do banco. Pegando o resultado, você incrementa o ID.
@Edit:
SQL:
SELECT
*
FROM
users
ORDER BY
id DESC
LIMIT 1
PHP:
$next_id = $last_entry['id'] + 1;
Valeu Cleiton Garcia! Até a próxima! :)
Use auto_increment