1
resposta

Quando realizo cadastro esta Duplicando, como evitar isso?

function insereProduto($conexao, $nome, $preco){

$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
return mysqli_query($conexao, $query);
}

<?php include("cabecalho.php");?>
<?php include("banco-produto.php");

$nome = $_GET["nome"];
$preco = $_GET["preco"];
$conexao = mysqli_connect('localhost', 'root', '', 'loja');

if(insereProduto($conexao, $nome, $preco)) {?>

<p class="text-success"> o Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php
} else {
    $msg = mysqli_error($conexao);
?>
<p class="alert-danger">O produto <? = $nome; ?> não foi adicionado: <?= $msg ?></p>
<?php
}

?>
<?php include("rodape.php");?>
1 resposta

Uma forma de evitar isso seria alterar a função de insereProduto para não inserir um produto com nome repetido. A alteração ficaria assim:

function insereProduto($conexao, $nome, $preco){
    $retorno = false;
    $query="SELECT nome FROM produtos WHERE nome = '{$nome}'";
    if ($resultado=mysqli_query($conexao,$query)) {
        if (mysqli_num_rows($resultado)==0){
            $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
            $retorno = mysqli_query($conexao, $query);
        }
    }
    return $retorno;
}