Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso verificar no cadastro de clientes se já possui o campo CNPJ cadastrado, onde CNPJ = $objCliente->CNPJ == sql - Tabela: tb_cliente -> de_cnpj varchar(20) etc...
uso o phpmyadmin como gerenciador de BD, não consigo tornar Unico da este erro:
Erro
Comando SQL:
ALTER TABLE tb_cliente ADD UNIQUE INDEX UK_cnpj (de_cnpj)
**Mensagens do MySQL : **[/applications/core/interface/imageproxy/imageproxy.php?img=https://phpmyadmin.locaweb.com.br/phpmyadmin45/themes/dot.gif&key=8e45ee732c7340bd648ac6787047e19f49b99bfcac90b039ce1833cf8711072a" title="Documentação" />](https://phpmyadmin.locaweb.com.br/phpmyadmin45/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.6%2Fen%2Ferror-messages-server.html)
#1062 - Duplicate entry '' for key 'UK_cnpj'
---------------------------------------------------------
Aguardo resposta obrigado !!!
(Preciso do código já pronto se possível)>
56 minutos atrás, EdCesar disse:
Se o que você quer é apenas deixar o campo UK_cnpj como unique, use apenas:
ALTER TABLE tb_cliente ADD UNIQUE (de_cnpj);
A query que você colocou serve para também tentar criar um indice para **de_cnpj**, e o erro ocorre, devido já existir um indice com o nome **UK_cnpj**
Não amigo, não é apenas isso que eu quero, mas de qualquer forma eu tentei
ALTER TABLE tb_cliente ADD UNIQUE (de_cnpj);
e o mesmo erro.
Mas o que exatamente preciso é :
Antes de cadastrar um Cliente preciso verificar se aquele CNPJ que o usuario vai digitar para cadastra-lo já possui no banco de dados, onde CNPJ = $objCliente->CNPJ == sql - Tabela: tb_cliente -> de_cnpj varchar(20) etc... se estiver cadastrado mostrar um alert, caso o contrario conclua o cadastro.
Uso o PhpMyAdmin como gerenciador de banco de dados.então tu tem que fazer um SELECT e não ALTER TABLE se bem entendi
>
Agora, marsolim disse:
então tu tem que fazer um SELECT e não ALTER TABLE se bem entendi
Como ficaria ?tu já fez a conexão com o banco usando mysqli ou pdo? ou talvez usando mysql que nesse caso sugiro mudar para mysqli ou pdo porque mysql não vai funfar do php 7 pra frente mas como muita gente inda tá no mysql vou supor que tu já fez a conexão com o banco usando ele. então vambora imaginar uma tbClientes com o campo id e o campo cnpj e tu vai pegar a id e o cnpj do cliente em uma variável de nome $id_cliente e outra de nome $cnpj pra poder passar na consulta
$qry = mysql_query("SELECT id FROM tbClientes WHERE id='$id_cliente' AND cnpj='$cnpj'");
$tem = mysql_num_rows($qry);
if($tem > 0){
echo 'esse cnpj já está cadastrado em nome de outra empresa';
}
mais ou menos isso numa página php. ve se consegue adaptarO erro ocorre porque já existe mais de um campo com o mesmo valor (' ')no seu BD:
>
3 horas atrás, rafinha_sam disse:
#1062 - Duplicate entry '' for key 'UK_cnpj'
Remova esses valores duplicados e rode a query novamente.
>
2 minutos atrás, ESerra disse:
O erro ocorre porque já existe mais de um campo com o mesmo valor (' ')no seu BD:
Remova esses valores duplicados e rode a query novamente.
Putz, verdade!
>
16 minutos atrás, marsolim disse:
tu já fez a conexão com o banco usando mysqli ou pdo? ou talvez usando mysql que nesse caso sugiro mudar para mysqli ou pdo porque mysql não vai funfar do php 7 pra frente mas como muita gente inda tá no mysql vou supor que tu já fez a conexão com o banco usando ele. então vambora imaginar uma tbClientes com o campo id e o campo cnpj e tu vai pegar a id e o cnpj do cliente em uma variável de nome $id_cliente e outra de nome $cnpj pra poder passar na consulta
$qry = mysql_query("SELECT id FROM tbClientes WHERE id='$id_cliente' AND cnpj='$cnpj'");
$tem = mysql_num_rows($qry);
if($tem > 0){
echo 'esse cnpj já está cadastrado em nome de outra empresa';
}
mais ou menos isso numa página php. ve se consegue adaptar
Error :
**Warning**: mysql_query() [[function.mysql-query](http://www.ryjoplastic.com.br/sistema/function.mysql-query)]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in **/home/storage/1/e0/81/ryjoplastic2/public_html/sistema/cliente-cadastrar.php** on line **173****Warning**: mysql_query() [[function.mysql-query](http://www.ryjoplastic.com.br/sistema/function.mysql-query)]: A link to the server could not be established in **/home/storage/1/e0/81/ryjoplastic2/public_html/sistema/cliente-cadastrar.php** on line **173****Warning**: mysql_num_rows(): supplied argument is not a valid MySQL result resource in **/home/storage/1/e0/81/ryjoplastic2/public_html/sistema/cliente-cadastrar.php** on line **174**
Onde foi inserido : cliente-cadastrar.php
<div class="form-group">
<?php
$qry = mysql_query("SELECT id_cliente FROM tb_cliente WHERE id_cliente='$id_cliente' AND de_cnpj='$cnpj'");
$tem = mysql_num_rows($qry);
if($tem > 0){
echo 'esse cnpj já está cadastrado em nome de outra empresa';
}
?>
<label class="col-sm-2 control-label" for="cnpj">CNPJ</label>
<div class="col-sm-4">
<input type="text" name="cnpj" class="form-control" id="cnpj" value="<?php echo str_pad($objCliente->cnpj, 14, "0", STR_PAD_LEFT); ?>" placeholder="CNPJ">
</div>como eu falei antes estava supondo que tu já tinha feito a conexão com o banco passando o endereço do server, nomes de usuário e de banco de dados e senha e também tem que criar as variáveis que falei com o id e o cnpj
>
1 minuto atrás, marsolim disse:
como eu falei antes estava supondo que tu já tinha feito a conexão com o banco passando o endereço do server, nomes de usuário e de banco de dados e senha e também tem que criar as variáveis que falei com o id e o cnpj
Sim já está feito a conexao.php
<?PHP
class Conexao
{
var $conecta;
function Conexao()
{
//conexão
$this->conecta = mysql_connect("xxxxxxxxxxxxxxx", "xxxxxxxxx", "xxxxxxxxxxxx");
$this->conexao = mysql_select_db("xxxxxxxxxxxx", $this->conecta);
}
function getConexao()
{
return $this->conecta;
}
function closeConnection()
{
mysql_close($this->conecta);
return true;
}
function BD2BRA($data)
{
if($data != "")
{
$data = explode("-", $data);
$data2 = explode(" ", $data[2]);
return $data2[0]."/".$data[1]."/".$data[0];
}
else
{
return "";
}
}
function BRA2BD($data)
{
if($data != "")
{
$data = explode("/", $data);
return $data[2]."-".$data[1]."-".$data[0];
}
else
{
return "";
}
}
}
?>Conteudo migrado sem texto.
Se o que você quer é apenas deixar o campo UK_cnpj como unique, use apenas: