Jump to content
Sapinn

Verificar se o valor de duas tabelas é igual

Recommended Posts

Tô fazendo esse forum pq não achei nada que me ajudasse. Tenho um site em que os professores dão temas para as usuarios produzirem textos, basicamente um site de historias. Preciso que o aluno saiba se ja fez um texto sobre aquele determinado tema. Sendo assim tenho duas tabelas no meu banco usuario que cadastra todos os usarios e historia que tem o tema. Quando o aluno vai enviar a historia automaticamente envia seu email. O que eu realmente quero é comparar se o email existe nas duas tabelas se sim ele retorna já foi feito se não ele retorna Nada feito ainda.

Share this post


Link to post
Share on other sites

Ao menos para mim não ficou claro , você que checar se um aluno já enviou um história ou se o texto da história já foi enviado ?

 

Mostre o modelo (descrição) de suas tabelas.

Share this post


Link to post
Share on other sites

Vou tentar explicar novamente pq realmente não ficou claro.  Quando o aluno envia uma historia com o tema os três porquinhos, por exemplo,  é enviado automaticamente seu email para a tabela historia juntamente com o tema e a historia. Assim quando eu mostrar todos os temas pedidos pelo professor em uma tabela html quero fazer um verificação em php se o aluno logado ja fez uma historia com aquele tema ou não.

 

 Por exemplo:

Temas                                   status

Chapeuzinho Vermelho      Não feita

Cinderela                               Não feita

Os três porquinhos                Feita

Lobisomen                            Não feita

 

O que eu falei acima, o email do aluno logado é verificado se tem uma historia com aquele tema

 

Por exemplo:

Aluno logado: fulano@gmail.com

tabela redacao:

tema                                          historia     email_aluno

Chapeuzinho vermelho          Blá blá blá         sicrano@gmail.com

Cinderela                                  Blá blá blá          beltrano@gmail.com

Os três porquinho                   Blá blá blá          fulano@gmail.com

Lobisomen                               Blá blá blá          alguem@hotmail.com

 

 

Talvez o problema seja minha lógica ou sei lá kkkkkkkkkkkkk

Desde ja agradeço a ajuda.

Share this post


Link to post
Share on other sites

Oi Sapin, usando sua lógica da certo, mas sei lá... Como o Motta disse não ficou muito claro (neste segundo post esclareceu um pouco).

 

Talvez se você criasse uma nova tabela(terceira) relacionando o aluno com o tema criado seria mais fácil fazer um select verificando se ele já enviou o determinado tema.

 

Mas como eu disse, é apenas uma suposição... talvez exista outras alternativas.

 

Abraço.

Share this post


Link to post
Share on other sites

Grosso Modo

Aluno

Cod pk

Nome

...

 

Tema

Cod pk

Nome

Data

...

 

Publicacao

Cod_aluno pk fk(aluno)

Cod_tema pk fk(tema)

Texto

...

 

Os ... indicam demais campos da tabela , não veem ao caso agora.

_______________________________________________________________

Leia sobre chaves primárias e estrangeiras para mais detalhes

https://pt.m.wikipedia.org/wiki/Chave_primária

https://pt.m.wikipedia.org/wiki/Chave_estrangeira

https://dev.mysql.com/doc/refman/8.0/en/primary-key-optimization.html

https://dev.mysql.com/doc/refman/8.0/en/foreign-key-optimization.html

 

 

 

 

Share this post


Link to post
Share on other sites

Muito obrigado pessoal! Encontrei a solução depois de tomar um bom banho e tirar um cochilo kkk. Não sei se está correto mas pelo menos está dando certo.

 

        include '../php/conexao.php';//conexao com o banco
        $sql = mysql_query("select * from temas_historia'");//seleciona todos os temas
        $row = mysql_fetch_assoc($sql);
        if($sql){

$sql = mysql_query("SELECT * FROM historia where email_aluno = '$email' and tema='".$row['nome_tema']."'") or die(mysql_error());
                    if(mysql_num_rows($sql)> 0){
                    ?>
                    <b style="color:green;">Você ja fez uma redação com esse tema</b><br>
                    <?php }else{?>
                    <b style="color:red;">Você ainda não fez</b>
                    <?php }?>
            

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By clickanapolis
      Boa tarde pessoal, desculpa se postei em lugar errado, mais não sei aonde postar essa minha dúvida. Estou finalizando um projeto que consiste em uma plataforma de processo seletivo e na etapa final os candidatos iram fazer uma prova online.
       
      O cliente me perguntou se é possível bloquear o navegador, tipo se ele sair do navegador ou mudar de aba tipo o sistema finalizar a prova do candidato, visto que o sistema irá identificar que ele foi fazer uma pesquisa.
       
      Eu particularmente não vi nada igual ate hj e não sei se existe algo seja em javascript ou qualquer outro modo de fazer isso.
    • By lUANZIKA3
      Olá boa tarde, eu criei um site de assistir jogo de futebol, apenas HTML + CSS E UM Pouco de JS, porém eu gostaria de editar os textos que contem em cada div pelo banco de dados, mais não sei por onde começar,  alguém poderia tirar minha duvida?
      gostaria apenas editar o conteúdo de texto e imagens. o que devo ler, e aprender?
      OBS: O site foi feito em Bootstrap!
      Sou leigo em PHP, alguém pode me ajudar, passar um link de algum forum, onde eu possa aprender a desenvolver esse pequeno utilitário que me ajudara bastante.
       
      Desde já agradeço!
      <div class="card-body"> <!--Title--> <h4 class="card-title">Campeonato Brasileiro Série A</h4> <!-- AS LINHAS QUE EU GOSTARIA DE EDITAR PELO BANCO DE DADOS--> <h6></h6> <h4 class="card-title">São Paulo x Palmeiras</h4> <!-- AS LINHAS QUE EU GOSTARIA DE EDITAR PELO BANCO DE DADOS--> <!--Text--> <p class="card-text">Assita o jogo de <span class="badge badge-primary"> <marquee behavior="slide">13/07 as 19:00</marquee behavior="slide"> </span> vivo, Assita futebol pelo mobile ou pc, online de graça, Brasileirão Série A sportv, premiere <span class="badge badge-danger"> <marquee behavior="slide">São Paulo x Palmeiras</marquee behavior="slide"> </span> é só dar play! </p> <!-- Provides extra visual weight and identifies the primary action in a set of buttons --> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#M2">PLAY</button> </div>  
    • By Igor Gabriel
      Boa Tarde, estou com uma dúvida.
       
      Estou criando um site para uma imobiliárias, fiz um sistema de cadastro todo bonitinho onde se encontra funcionando perfeitamente. Contudo fora do sistema, no site, quando clico para ver os imoveis, tenho a listagem de todos os imoveis já cadastrados. Quando entro na página para ver mais do Imóvel é trazido consigo todas as informações presentes no banco, ao invés de uma só. Como faço para trazer uma única informação específica do banco?
    • By leocouto
      Pegar um dado específico de uma tabela, caso tenha mais de um item cadastrado sempre vai pegar o último.
      <form name="editaFornecedor"<?php +1?> action="edit_forne.php" id="editaFornecedor" method="POST"> <!-- Pegando todos os fornecedores cadastrados... --> <table class="table table-striped"> <thead class="thead-dark"> <tr> <th scope="col">ID</th> <th scope="col">Nome</th> <th scope="col">Fone</th> <th scope="col">CNPJ</th> <th scope="col">Rua</th> <th scope="col">Número</th> <th scope="col">Bairro</th> <th scope="col">Estado</th> <th scope="col">Cidade</th> <th scope="col">CEP</th> <th scope="col">E-mail</th> <th scope="col">Observação</th> <th scope="col">Editar|Deletar</th> </tr> </thead> <?php @session_start(); include('conexao.php'); $fornecedor = mysqli_query($conexao, "SELECT * FROM fornecedor"); $linhas = mysqli_num_rows($fornecedor); while ($linhas = mysqli_fetch_array($fornecedor)) { ?> <tbody> <tr> <td><?php echo $linhas['id_fornecedor']; ?></td> <td><?php echo $linhas['nome']; ?></td> <td><?php echo $linhas['fone']; ?></td> <td><?php echo $linhas['cnpj']; ?></td> <td><?php echo $linhas['rua']; ?></td> <td><?php echo $linhas['numero']; ?></td> <td><?php echo $linhas['bairro']; ?></td> <td><?php echo $linhas['estado']; ?></td> <td><?php echo $linhas['cidade']; ?></td> <td><?php echo $linhas['cep']; ?></td> <td><?php echo $linhas['email']; ?></td> <td><?php echo $linhas['observacao']; ?></td> <td> <button type="submit" class="btn btn-secondary" style="height: 35px; width: 100px"><i class="material-icons">description</i>Editar</button><br> <button type="button" class="btn btn-danger" style="height: 35px; width: 100px"><i class="material-icons">delete</i>Deletar</button> </td> <td><input type="text" name="id_fornecedor" value="<?php echo $linhas['id_fornecedor'];?>"></td> </tr> </tbody> <?php } ?> </table> <!-- Fim da exibição de todos os fornecedores cadastrados.. --> </form>  
       
      ======================================================================================================================================================
      Aqui no MYSQL só pega o último item da tabela.. Não pega o que foi clicado no botão.
      <?php include('conexao.php'); session_start(); //$cnpj=$_POST['cnpj']; $id_fornecedor=$_POST['id_fornecedor']; echo $id_fornecedor; ?> =======================================================================================================================================================
      É desse modelo da imagem, mas na hora que clico em editar no mysql aparece o último id e não na linha que cliquei, se eu clicar no primeiro na outra página aparece o id 4, que é o ultimo, quem pode me dar essa força? Ficarei muito grato.

    • By tiagosp
      Olá, preciso encontrar uma forma de diferenciar usuários no SESSION, logo apliquei o seguinte método:
      SESSION["ID" + IP] = ID_vindo_do_Mysql
      Assim posso autenticar o usuário nas diversas requisições, porém surgiu um problema... O mesmo IP é aplicado a dispositivos que acessam o servidor a partir da mesma rede, veja:
      Meu PC = 000.000.00.00
      Meu celular = 000.000.00.00
      Demais dispositivos: 000.000.00.00
      Todos apresentam o mesmo IP, mas preciso de algo (prefixo, sufixo) para diferenciar  o nome da global SESSION.
      Pensei em um sufixo aleatório, porém não vou conseguir autenticar o cliente em páginas futuras, pois o sufixo se torna desconhecido e não posso armazená-los em cookie
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.