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

Não permitir cadastro duplicado exceto se coluna pedido estiver vazia - PHP


jeffersong

Pergunta

Olá, estou fazendo um insert via PHP de um sistema de pedidos para o banco Mysql. Porém precisaria que o sistema "travasse" quando o usuário tentar cadastrar um pedido com numero já existente, mas caso o campo número do pedido estiver vazio no banco, ele permitir cadastrar. Alguém tem algum exemplo de como posso fazer isso?

No primeiro momento pode permitir numero do pedido vazio, onde o usuário alterará e preencherá depois.

$search = mysql_query("SELECT * FROM pedidos WHERE num_pedido = '$num_pedido'");
if((mysql_num_rows($search) == 0) && (mysql_num_rows($search) <> "")){
  echo '<script type="text/javascript">
  alert("Número pedido já existente"); 
</script>';

echo "<script> window.location = history.go(-1);</script>";
}else{
  $sql = "INSERT INTO `pedidos` ( `num_pedido`, `modelo` , `versao` , `cor` , `opcionais` , `anomodelo` , `sf` , `dn` , `edicao` , `anofaturamento`, `datadeintencao` , `status`) 
  VALUES ('$num_pedido', '$modelo', '$versao', '$cor', '$opcionais' , '$anomodelo' , '$sf', '$dn' , '$edicao' , '$anofaturamento', '$datadeintencao' , '$status')";
  $consulta = mysql_query($sql);
  echo '<script type="text/javascript">
    alert("Pedido inserido com sucesso!"); 
  </script>';
  //Atualize a página
  echo '<script type="text/javascript">location.replace("inicio.php");</script>';
}

Cadastro do Banco abaixo:

CREATE TABLE IF NOT EXISTS `pedidos` (
`id` int(5) unsigned zerofill NOT NULL,
  `num_pedido` varchar(5) NOT NULL,
  `modelo` varchar(2000) NOT NULL,
  `versao` varchar(2000) NOT NULL,
  `cor` varchar(2000) NOT NULL,
  `opcionais` varchar(2000) NOT NULL,
  `anomodelo` varchar(2000) NOT NULL,
  `sf` varchar(2000) NOT NULL,
  `dn` varchar(2000) NOT NULL,
  `edicao` varchar(2000) NOT NULL,
  `chaveopcional` varchar(500) NOT NULL,
  `chavecor` varchar(500) NOT NULL,
  `status` varchar(2000) NOT NULL,
  `anofaturamento` varchar(2000) NOT NULL,
  `ponto` varchar(2000) NOT NULL,
  `chassi` varchar(2000) NOT NULL,
  `valorfaturamentomaximo` varchar(2000) NOT NULL,
  `varejamento` varchar(2000) NOT NULL,
  `datadeintencao` varchar(2000) NOT NULL,
  `datadecoleta` varchar(2000) NOT NULL,
  `datafaturamento` varchar(2000) NOT NULL,
  `recebido` varchar(2000) NOT NULL,
  `extra` varchar(2000) NOT NULL,
  `conferido` varchar(2000) NOT NULL,
  `pendentedealer` varchar(2000) NOT NULL,
  `valornfdealer` varchar(2000) NOT NULL,
  `datachegada` varchar(2000) NOT NULL,
  `jachegouprevisaobreve` varchar(2000) NOT NULL,
  `faltandochassi` varchar(2000) NOT NULL,
  `faltandovalornf` varchar(2000) NOT NULL,
  `buscapedido` varchar(2000) NOT NULL,
  `emestoque` varchar(2000) NOT NULL,
  `precovenda` varchar(2000) NOT NULL,
  `margem` varchar(2000) NOT NULL,
  `parareceber` varchar(2000) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;

ALTER TABLE `pedidos`
 ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `num_pedido` (`num_pedido`);

ALTER TABLE `pedidos`
MODIFY `id` int(5) unsigned zerofill NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=21;
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...