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

[DUVIDA][RESOLVIDO] Comparando variável com dados de um banco


Arthur_Arruda

Pergunta

Boa tarde pessoal do ScriptBrasil , cá estou eu com mais uma dúvida.

Tenho um database em mysql com os campos :

cod_aluno -> int auto_increment not null <-PRIMARY KEY

Matricula ->int

identidade -> varchar

cpf -> varchar

No corpo do programa , temos os respectivos campos e consequentemente um botão para enviar o formulário.

O campo matrícula , identidade e cpf não podem ser ser not null pois são campos que podem ser ignorados na hora do cadastro , dai o motivo para não usá-los como primary key.

Minha duvida é : Há alguma maneira de fazer uma pesquisa no banco para saber se aquela matrícula , identidade e/ou cpf já foram cadastrados no banco e emitir uma mensagem para alertar o usuário sobre o ocorrido?

Desde já agradeço pela atenção e/ou ajuda pessoal , aguardo ansiosamente uma resposta.

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

5 respostass a esta questão

Posts Recomendados

  • 0

ola

sim tem uma maneira, deve ter outras tambem,

vamos pegar o exemplo do cpf

receba a variavel por POST

$cpf = $_POST['cpf'];
crie uma variavel para selecionar a linha do cpf no banco
$verifica_cpf = mysql_query("SELECT * FROM sua_tabela WHERE cpf = '$cpf'");
agora pesquise a linha cpf do banco, se achar um cpf igual ao recebido pelo POST o resultado sera 1 senao sera 0, então se for 1 aparece a mensagem que já tem um cpf cadastrado, com esse codigo tu consegue fazer isso
if(mysql_num_rows($verifica_cpf) == 1){    
 echo "CPF já cadastrado";
}
else{
 echo "Cadastro efetuado com sucesso"
}

qualquer coisa é só falar.

Link para o comentário
Compartilhar em outros sites

  • 0

No seu comando SQL a sua condição deve abranger também os campos matricula e rg usando o operador OR. Também se faz interessante executar a validação dentro de uma callback antes de inserir novos registros na base de dados consultando se já existe algum aluno com dados semelhante.

Exemplo tosco...

<?php
session_start ();

if ($_SESSION ['dadosMemoria'] == null) // Se não existir dados na sessão cria a
                                        // sessão para armazenar os dados
    $_SESSION ['dadosMemoria'] = $_POST;

extract ( $_SESSION ['dadosMemoria'] ); // Extrai dados da sessão
                                        
// Conecta a base
try {
    $pdo = new PDO ( 'mysql:host=localhost;dbname=alunos', 'usuarioDB', 'senhaDB' );
} catch ( Exception $e ) {
    throw new Exception ( "Não popssível conectar a base. Detalhes: " . $e, E_USER_ERROR );
}

// Consulta banco em busca de dados semelhantes aos digitados
$consulta = $pdo->query ( 'SELECT id FROM sua_tabela WHERE cpf = ' . $cpf . ' OR matricula = ' . $matricula . ' OR rg = ' . $rg );

$cadastrar = true; // Flag auxiliar para limpar sessao se a decisão final for realmente cadastrar

if ($forcarCadastro != "S") { // Verifica se usuário mandou forçar o cadastro
    if ($consulta->rowCount () > 0) { // Verifica se existe cadastro semelhante
                                      
        // Exibe mensagem notificadora e pergunta se deseja forçar o cadastro
        echo 'Já existe(m) cadastro(s) semelhante(s) a esse:';
        foreach ( $consulta as $resultado ) {
            echo '<br/>', $resultado ['nome'];
        }
        echo 'Deseja continuar? <form action="' . $_SERVER ['PHP_SELF'] . '"><input type="submit" name="forcarCadastro" value="S" /></form>';
        $cadastrar = false;
    }

}

if ($cadastrar == true) {
    try{
    $pdo->exec ( "INSERT INTO suta_tabela VALUES ({$matricula},{$rg},{$cpf})" );
    $_SESSION ['dadosMemoria'] == null; // limpa memoria
    } catch (Exception $e){
        throw new Exception ( "Não popssível inserir na base. Detalhes: " . $e, E_USER_ERROR );
    }
}

Link para o comentário
Compartilhar em outros sites

  • 0
Em 20/08/2012 at 19:36, Nosreve disse:

ola

sim tem uma maneira, deve ter outras tambem,

vamos pegar o exemplo do cpf

 

receba a variavel por POST

 

 

$cpf = $_POST['cpf'];

crie uma variavel para selecionar a linha do cpf no banco

 

$verifica_cpf = mysql_query("SELECT * FROM sua_tabela WHERE cpf = '$cpf'");

agora pesquise a linha cpf do banco, se achar um cpf igual ao recebido pelo POST o resultado sera 1 senao sera 0, então se for 1 aparece a mensagem que já tem um cpf cadastrado, com esse codigo tu consegue fazer isso

 

if(mysql_num_rows($verifica_cpf) == 1){    
 echo "CPF já cadastrado";
}
else{
 echo "Cadastro efetuado com sucesso"
}

 

 

qualquer coisa é só falar.

Cara, teria como eu fazer esse mesmo processo mais comparando um certo horário no banco ?
Exemplo, tenho uma visita dia 07/10/2017 as 10:00, ai se o Usuário fosse incluir uma mesma visita nesse horário retornaria uma mensagem dizendo que já tem esse horário. Porém se fosse dia 08/10/2017 as 10:00 ele aceitaria, porque a data é diferente. estaria usando DataAtual (yy/yy/yyyy - h/m/s) e queria comparar apenas o horário. Com essa mesma opção do CPF teria como ?

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que estou passando por um problema parecido, não estou conseguindo uma comparação $lista['status'] == 'RECEBIDO' recebida do banco nesse código:

 if($lista['status'] == 'RECEBIDO'){
       
       echo '<span style="color:red">' .$lista['status']. '</span>';
   }

if($lista['status'] == 'EM ATENDIMENTO'){
     echo  '<span style="color:green">' .$lista['status']. '</span>';
   }
   
if($lista['status'] == 'AGUARDANDO'){
    echo '<span style="color:blue">' .$lista['status']. '</span>';
 }

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