jgasper 0 Denunciar post Postado Maio 29, 2015 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
Beraldo 864 Denunciar post Postado Maio 29, 2015 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