Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafinha_sam

Verificar se já tem CNPJ cadastrado

Recommended Posts

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 : Documentação

#1062 - Duplicate entry '' for key 'UK_cnpj'

 

---------------------------------------------------------

 

Aguardo resposta obrigado !!! 

 

(Preciso do código já pronto se possível)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então tu tem que fazer um SELECT e não ALTER TABLE se bem entendi

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

O 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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]: 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]: 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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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 "";
        }
    }
}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Conteúdo Similar

    • Por rafinha_sam
      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.
       
       
    • Por rafinha_sam
      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 : 
      #1062 - Duplicate entry '' for key 'UK_cnpj'
       
      ---------------------------------------------------------
       
      Aguardo resposta obrigado !!! 
       
      (Preciso do código já pronto se possível)
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.