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 ja 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;