You only register once and then

0

I'm doing a virtual sales store using HTML / CSS / PHP for the course work and I'm getting the following BUG:

I created the code for the processing of the user registry, when I create the first user it works and creates the data in the database. It works beautiful, but when I create another user it does not work, it does not create.

<?php 
// Vai incluir/importar a função/método que está no Conexao.php
    include 'Includes\Conexao.php';

// Receber o login, senha, nome, cpf, endereco e telefone
    $login = $_POST["login"];
    $senha = $_POST["senha"];
    $nome = $_POST["nome"];
    $cpf = $_POST["cpf"];
    $endereco = $_POST["endereco"];
    $telefone = $_POST["telefone"];

// Consulta se o login já é existente no banco de dados
    $consulta = mysql_query ("SELECT loginUser FROM usuarios WHERE loginUser = '$login'");
    $linhas = mysql_num_rows ($consulta); // Coloca na variável um valor com a quantidade de linhas encontradas na consulta feita anteriormente

// Se o resultado for verdadeiro, se existir o login no banco de dados, ele retornará uma mensagem e volta para a página Cadastra_User.php
    if ($linhas == 1) // ou true - Se o login existir
    {
        echo "<script> alert ('Login ja cadastrado com algum usuario. Tente novamente!') </script>";
        echo "<script> location.href = ('Cadastra_User.php') </script>";
        exit(); // se for verdadeiro, o fluxo para aqui!
    }
    else // Se o login não existir
    {
        $cadastrar = mysql_query("INSERT INTO usuarios (loginUser, senhaUser, nomeUser, cpfUser, endereco, telefone) VALUES ('$login', '$senha', '$nome', '$cpf', '$endereco', '$telefone')");

        if ($cadastrar == true)
        {
            echo "<script> alert ('$nomeUser cadastrado com sucesso!') </script>";
            echo "<script> location.href = ('Cadastra_User.php') </script>";
            exit(); // se for verdadeiro, o fluxo para e retorna para a página de cadastra_user
        }
        else
        {
            echo "<script> alert ('Ocorreu um erro no servidor. Tente novamente!') </script>";
        }   
    }       
?>

What appears when I try to create a second user:

    
asked by anonymous 07.12.2016 / 01:39

1 answer

0

Generally, this type of error of not being able to register more than one record in a table is caused when you set a primary key (eg in the id field) and forget to set it to AUTO_INCREMENT .

What will happen if you do not define it as AUTO_INCREMENT is an insertion of a 0 value into the id field, since you set it to INTEGER . When you do not have AUTO_INCREMENT , the default value of a column INTEGER not entered is always 0 .

That is, you are expecting MYSQL to increment for you, but it has not been set to increment. Since you set id to Primary key , when you enter the record, the 0 becomes Primary Key . If you attempt to insert another record, it will try to insert as 0 again, but this will generate an error because Primary Keys can not duplicate.

    
07.12.2016 / 13:11