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

sistema em php com problemas em consultas


diego

Pergunta

Primeiramente gostaria de agradecer a todos que puderem ou tentarem me ajudar e peço desculpas se o pedido de ajuda se encontra em um lugar errado, então vamos lá 

 

Estou desenvolvendo um chat como trabalho do curso técnico, mas o problema que na pagina chat.php os usuarios que consigo colocar na tela são todos os usuarios da tabela USUARIOS e eu gostaria de colocar somente aqueles usuarios que esta cadastrado o id na tabela amigos

esse é meu banco de dados, que eu tenho como tabelas são amigos mensagens e usuarios. 

tabelas.thumb.png.373e9668105b3bd4c7e854

essa é minha tabela usuariosusuarios.thumb.png.587d2f7ad5cee0b43b53c

e essa é minha tabela amigos.

na tabela amigos eu  identifico que a id 4 é amigo do id 8 e o id 8 é amigo do id 6 que estão na tabela usuarios

amigos.thumb.png.7bd98541915327194f86231

o problema é que não consigo fazer um SELECT para buscar exatamente só os amigos do usuario com JOIN DA DUAS TABELAS "usuarios e amigos" join.thumb.png.b186510156ffd9f886f9db4a5

com esse codigo aqui 

<?php
    session_start();
    include_once "defines.php";
    require_once('classes/BD.class.php');
    BD::conn();

    if(!isset($_SESSION['email_logado'], $_SESSION['id_user'])){
        header("Location: index.php");
    }

    $pegaUser = BD::conn()->prepare("SELECT * FROM `usuarios` WHERE `email` = ?");
    $pegaUser->execute(array($_SESSION['email_logado']));
    $dadosUser = $pegaUser->fetch();
    

 

   
    if(isset($_GET['acao']) && $_GET['acao'] == 'sair'){
        unset($_SESSION['email_logado']);
        unset($_SESSION['id_user']);
        session_destroy();
        header("Location: chat.php");
    }
?>
<!DOCTYPE HTML>
<html lang="pt-BR">
    <head>
        <meta charset=UTF-8>
        <title>Chat Hulk</title>
        <link href="css/style.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/jquery_play.js"></script>
        <script type="text/javascript">
            $.noConflict();
        </script>
        
    </head>

    <body>
        <span class="user_online" id="<?php echo $dadosUser['id'];?>"></span>
        <h2>Bem vindo, <?php echo $dadosUser['nome'];?></h2>
        <a href="?acao=sair">Sair</a>
        <aside id="users_online">
            <ul>
            <?php
              

        
                
                $pegaUsuarios = BD::conn()->prepare("SELECT * FROM `usuarios` WHERE `id` != ?");                
                
                
                
                $pegaUsuarios->execute(array($_SESSION['id_user']));
                
                while($row = $pegaUsuarios->fetch()){
                    $foto = ($row['foto'] == '') ? 'default.jpg' : $row['foto'];
                    $blocks = explode(',', $row['blocks']);
                    $agora = date('Y-m-d H:i:s');
                    if(!in_array($_SESSION['id_user'], $blocks)){
                        $status = 'on';
                        if($agora >= $row['limite']){
                            $status = 'off';
                        }
            ?>
                <li id="<?php echo $row['id'];?>">
                    <div class="imgSmall"><img src="fotos/<?php echo $foto;?>" border="0" /></div>
                    <a href="#" id="<?php echo $_SESSION['id_user'].':'.$row['id'];?>" class="comecar"><?php echo utf8_encode($row['nome']);?></a>
                    <span id="<?php echo $row['id'];?>" class="status <?php echo $status;?>"></span>
                </li>
            <?php }}?>
            </ul>
        </aside>

        <aside id="chats">
            
        </aside>
        <script type="text/javascript" src="js/functions.js"></script>
    </body>
</html>

a pagina chat.php fica assim.

chatphp.thumb.png.a8f607455de7997c345753

 

com todos usuarios da tabela usuarios 

gostaria de só selecionar os amigos de cada Usuário 

desde já agradeço.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

O problema está na consulta da quarta imagem. Experimenta assim:

SELECT usuarios.id, amigos.id_amigo
FROM amigos INNER JOIN usuarios ON amigos.id_pessoa = usuarios.id
WHERE usuarios.id = 4;

Não precisas de seleccionar o campo amigos.id_pessoa pois é uma chave estrangeira e portanto vai ser sempre igual ao usuarios.id e só traz redundância.

Editado por wootzor
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...