Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Di Menezes

Chave primária incrementando de dois em dois

Recommended Posts

Fiz um sisteminha em PHP só pra inserir valores e retornar a ID de inserção com mysql_insert_id.

Ele insere normalmente, mas o id vai incrementando de dois em dois... "Registro efetuado com sucesso. ID de registro: 2", aí quando eu envio um valor de novo, o id vai pra 4 e etc...

 

Meu código tá aí:

 

~ aula1.php

<?php require_once('funcoes.php'); ?>

<!DOCTYPE HTML PUBLIC "~//W3C//DTD HTML 4.0 Transiitonal//EN">

<html>

<head>

<meta http-equiv="content-type" content="text/html" charset="utf-8"/>

<title></title>

</head>

<body>

<form method="post" action="" enctype="multipart/form-data">

Nome:<input type="text" name="nome"/><br/>

Sobrenome:<input type="text" name="sobrenome"/><br/>

<input type="submit" name="enviar" value="Cadastrar"/><br/>

</form>

<?php

if(isset($_POST['enviar'])){

 

$nome = $_POST['nome'];

$sobrenome = $_POST['sobrenome'];

conexao();

$sql_inserir = "INSERT INTO clientes (nome,sobrenome) VALUES ('$nome','$sobrenome')";

inserir($sql_inserir);

 

if(inserir($sql_inserir)){

echo('Registro efetuado com sucesso. ID de registro: '.mysql_insert_id());

} else {

echo('Erro na rotina de inserção: '.mysql_error());

}

}

?>

</body>

</html>

 

~ funcoes.php

 

<?php

function conexao (){

$banco='aulas';

$usuario='root';

$senha='';

$host='localhost';

$conn=mysql_connect($host,$usuario,$senha) or die ("Erro na rotina de conexão: ".mysql_error());

mysql_select_db($banco) or die ("Erro na seleção do banco de dados: ".mysql_error());

mysql_query("SET NAMES 'utf-8'");

mysql_query("SET caracters_set_connection 'utf-8'");

mysql_query("SET caracters_set_client 'utf-8'");

mysql_query("SET caracters_set_results 'utf-8'");

}

function inserir($sql){

if (mysql_query($sql)){

return TRUE;

} else {

return FALSE;

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é uma dúvida de PHP não de MySQL amigo.

O script está exibindo desta maneira porque você está fazendo 2 INSERT's.

 

Um aqui inserir($sql_inserir);

E o outro aqui if(inserir($sql_inserir)){

 

A função retorna claramente um valor booleano.

O correto para isto seria assim:

 

$insert = inserir($sql_inserir);

 

if($insert){

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.