2
respostas

Criar numero Sequencial

Minha duvida é como criar um numero de atendimento sequencial, sem repetir, em uma pagina assim que o cliente clicar em um botão e depois passar esse numero para próxima pagina para inserção juntamente com o cadastro do cliente.

Segue o que já consegui fazer até o momento mas não estou conseguindo inserir o numero e retornar para exibi-lo

  1. Criei a tabela atendimento no BD com a coluna número
  2. Criei um botão para o usuário clicar e enviar para o arquivo adiciona-atendimento
<li><a href="php/adiciona-atendimento.php"><input type="hidden"
      name="" class="btn btn-success btn-sm">Novo Atendimento</li></a>
  1. Criei um arquivo para adicionar o atendimento
<?php
$atendimento = new Atendimento();
$atendimento->setNumero($_POST["numero"]);
//var_dump($atendimento);exit;

$dao = new atendimentoDAO($conexao);

if ($dao->insereAtendimento($atendimento)) {   
    ?>
   <?php $_SESSION["atendimento_logado"] = $atendimento["numero"];?>
    <script type="text/javascript">
    window.location="../novo-atendimento.php"
          </script>
    <?php
  1. Criei o atendimentoDAO função insere-atendimento:
function insereAtendimento($atendimento) {
$query = "SELECT MAX(numero) FROM atendimento
INSERT INTO atendimento (numero, cliente_id) VALUES ('{$atendimento- 
 >getNumero()}' + 1)";

    //var_dump($query);exit;
    $resultado = mysqli_query($conexao, $query);
    $atendimento = mysqli_fetch_assoc($resultado);
     return $atendimento;
       }
  1. Classe atendimento
class Atendimento
{
public $id;
public $numero;


public function getId()
{
    return $this->id;
}

public function setId($id)
{
    $this->id = $id;
}

 public function getNumero()
{
    return $this->numero;
}

public function setNumero($numero)
{
    $this->numero = $numero;
}
2 respostas

Sergio, bom dia!

No banco de dados crie uma coluna que nós chamamos de primary key e adicione um AUTO INCREAMENT nessa coluna.

Assim quando você for inserir pelo PHP, ao invés de colocar o VALUE dela, apenas coloque DEFAULT ficando assim:

SELECT MAX(numero) FROM atendimento
INSERT INTO atendimento (numero, cliente_id) VALUES (DEFAULT, idDocliente)";

Link útil

Espero ter ajudado e bons estudos!

Oi Felipe obrigado. Alterei a coluna numero para auto increment e primary key. Não está inserindo, segue resultado:

Notice: Undefined index: numero in C:\Bitnami\wampstack-7.1.13-1\apache2\htdocs\teste\php\adiciona-atendimento.php on line 9

6  <?php
7
8   $atendimento = new Atendimento();
9   $atendimento->setNumero($_POST["numero"]);

Outra duvida é o retorno que preciso exibir na outra pagina mencionando o numero do atendimento inserido.