Jump to content
Fórum Script Brasil
  • 0

sistema em php com problemas em consultas


diego
 Share

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

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

Edited by wootzor
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...