Ir para conteúdo

Arquivado

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

jgasper

Valores repetidos MYSQL

Recommended Posts

Preciso verificar no banco se existe o valor igual na hora de inserir.

No código abaixo funciona se comparar somente 2 valores. O que posso estar fazendo errado

 

$search = mysql_query("SELECT * FROM pedido WHERE prefixo = '$prefixo' AND basico = '$basico' AND cor = '$cor' AND chassi = '$chassi' ");
if(@mysql_num_rows($search) > 0){
 echo "<script language='javascript'>
   <!--
    alert('Ja foi realizado o pedido desta peça para este chassi');
    //-->
    </script>";
}else{
// faz inserção
$sql = mysql_query("INSERT INTO pedido (codigo_pedido, prefixo, basico, cor, quantidade, embalagem, os, chassi, vendedorresponsavel, datapedido, vendidodia, consultor) VALUES ('$codigo_pedido', '$prefixo','$basico','$cor','$quantidade','$embalagem','$os','$chassi','$vendedorresponsavel','$datapedido','$vendidodia','$consultor') ");
if($sql) {
echo "<script>location.href='sucessoinserir.php'</script>";
exit;
} else {
echo "<script>location.href='erroinserir.php'</script>";
exit;
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, tire esses "@" do código. Entenda quando deve usá-los: http://rberaldo.com.br/boas-praticas-programacao-php/#arroba

 

Se quer contar, não precisa selecionar, apenas conte, com a função COUNT, do MySQL

SELECT COUNT(*) as total FROM table WHERE condicoes;

[/sq]

Veja um simples exemplo aqui: http://stackoverflow.com/a/6907776

 

Outra alternativa é adicionar uma chave única (UNIQUE KEY). Após inserir, verifique se o mysql retornou erro (pode usar mysql_errno). Se for o erro 1062, significa que foi inserido um registro duplicado. Assim evita-se o SELECT sempre antes do INSERT. Basta fazer o INSERT direto. O bd é quem garante a unicidade

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql

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.