Ir para conteúdo
Fórum Script Brasil
  • 0

duvida select e insert (php+mysql)


heldersm

Pergunta

ola pessoal, minha duvida é a seguinte:

tenho um formulario pra fazer insert em um banco. só que preciso que ele realize uma consulta no banco, pra ver se não existe nenhum cadastro com o mesmo codigo, assim não duplicando os registros.

o codigo que faz o select e o insert e o seguinte:

<?php
//script banco
$cod_nov_esta = $_POST['cod_nov_esta'];
$cod_nov_dep = $_POST['cod_nov_dep'];
$cod_nov_sec = $_POST['cod_nov_sec'];
$cod_nov_apoio = $_POST['cod_nov_apoio'];
$cod_nov_aa = $_POST['cod_nov_aa'];
$cod_nov_ab = $_POST['cod_nov_ab'];
$cod_nov_cad = $_POST['cod_nov_cad'];
$cod_nov_cpu = $_POST['cod_nov_cpu'];
$cod_nov_gav = $_POST['cod_nov_gav'];
$cod_nov_imp = $_POST['cod_nov_imp'];
$cod_nov_mesa = $_POST['cod_nov_mesa'];
$cod_nov_mon = $_POST['cod_nov_mon'];
$cod_nov_sup_cpu = $_POST['cod_nov_sup_cpu'];
$bd = 'geo';
$user = 'root';
$host = 'localhost';
$senha = '1302';
$conecta = mysql_connect($host, $user, $senha) or die ("erro de conexao BD". mysql_error());
$link = mysql_select_db($bd, $conecta) or die ("erro selecao bd". mysql_error());
$consulta = mysql_query("SELECT * FROM bloco_a WHERE CODIGO LIKE '$cod_nov_esta'");
$total = mysql_num_rows($consulta);
if (($total) > 0){

   echo "<h5><span style='color:red'>Essa estação já existe.</span></h5><h5><a href='incluir_popup.php' title='voltar'>Voltar</a></h5>"; 

}  else {
$inclui_est = mysql_query("INSERT INTO bloco_a (CODIGO,DEPARTAMENTO,SECRETARIA,APOIO_DE_PE,ARMARIO_ALTO,ARMARIO_BAIXO,CADEIRA,CPU,GAVETEIRO,IMPRESSORA,
MESA,MONITOR,SUPORTE_CPU) VALUES ('$cod_nov_esta','$cod_nov_dep','$cod_nov_sec','$cod_nov_apoio','$cod_nov_aa','$cod_nov_ab','$cod_nov_cad',
'$cod_nov_cpu','$cod_nov_gav','$cod_nov_imp','$cod_nov_mesa','$cod_nov_mon','$cod_nov_sup_cpu')")or die(mysql_error());
echo "<h5><span style='color:#0606c9'>Nova estação cadastrada.</span></h5><h5><a href='incluir_popup.php' title='voltar'>Voltar</a><h5>";


};

?>

ele pega os dados do formulario via post, faz a consulta do campo cod_nov_est. se o codigo já existir ele retorna o erro, se não existir ele cadastra o novo registro.

o problema é que ele esta sempre dando que a estacao já existe. mesmo quando cadastra.

tipo, eu cadastro, ele vai pro banco. só que sempre retorna o erro: essa estacao já existe.

o que pode estar errado?

abraços!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

$consulta = mysql_query("SELECT * FROM bloco_a WHERE CODIGO LIKE '$cod_nov_esta'");
troca o LIKE por "=", acredito que funcionará
$consulta = mysql_query("SELECT * FROM bloco_a WHERE CODIGO = '$cod_nov_esta'");
caso não funcione adicione antes do if o codigo
<pre>
<?=print_r($consulta);?>
</pre>
para ver se há linhas que estao sendo retornada pelo select. ps: sei que é o $total nunca retornará um numero negativo mas, so por embelezamento muda tambem
if (($total) > 0){
por
if ($total != 0){

espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

vlw pelas dicas toze, mas não deu certo cara.

continua do mesmo jeito.

alguém tem mais alguma sugestao?

obrigado!

edit:

acabei de testar e no firefox roda normal o script. so no Internet explorer que da esse erro.

o foda é que o programa vai rodar 90% no internet explorer.

o que sera que esta errado?

vlw

Editado por heldersm
Link para o comentário
Compartilhar em outros sites

  • 0

Troca:

$consulta = mysql_query("SELECT * FROM bloco_a WHERE CODIGO LIKE '$cod_nov_esta'");

Por:

$consulta = mysql_query("SELECT * FROM bloco_a WHERE CODIGO = '$cod_nov_esta'");

E dá um echo no $total para ver o valor que aparece...

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, copiei seu código aqui e simulei sua consulta com uma tabela só de 2 campos pra ficar mais fácil.

Sua consulta está totalmente funcional. não tem problema nenhum.

Verifique se o form está definido como POST, a impressão que dá é que o valor ta indo em branco. por isso ele sempre da que já existe...

sorte ae.. falou

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...