2016-04-20 59 views
0

我想从特定用户中选择数据。当他在网站上登录时,他会看到与他有关的信息。如何使用INNER JOIN从特定用户选择数据

我正在使用INNER JOIN,我需要选择与他的登录名或ID相关的数据。

,我用它来登录任何帐户,我可以访问注册=/

在这种情况下,我使用的是ID的所有练习。

查询有问题吗?

我没有从PHP中得到任何错误。我可以在哪里放WHERE子句?

代码:

<?php 

$login = $_SESSION['login']; 

$consulta = mysqli_query($conexao,"SELECT exercicios.nome_exercicio AS nome_exc, 
    exercicios.repeticoes_exercicio AS rep_exc, 
    exercicios.serie_exercicio AS serie_exc 
    FROM exercicios 
    INNER JOIN usuarios ON usuarios.id_usuario = exercicios.id_usuario WHERE exercicios.id_usuario = '5'"); 

if(mysqli_num_rows($consulta)> 0){ 

    echo "<div class='table-responsive'><table class='table table-responsive'> 
    <tr><td>Nome</td><td>Repetições</td><td>Série</td></tr>"; 

    while ($exercicio = mysqli_fetch_assoc($consulta)) 
    { 
     print"<tr> 
      <td>$exercicio[nome_exc]</td> 
      <td>$exercicio[rep_exc]</td> 
      <td>$exercicio[serie_exc]</td> 
     </tr>"; 
    } 
    echo " </table></div>"; 
} 
else { 
    echo "<h3>Seu instrutor ainda não cadastrou exercícios</h3>"; 
} 
?> 
+1

你只是从exercicios中选择列,所以看起来你实际上并不需要将它加入到usuarios中来工作。 –

+0

这就是说,它应该仍然适用于它的加入,并且你的WHERE子句不在错误的地方。我真的没有看到任何问题。你确定你有一个id_usuario = 5的用户吗? –

+0

是的 - 我想说,这对我来说很好。我想知道是否在'usuarios'表中有一些你想使用'WHERE'子句进行过滤的东西。 –

回答

0

你错过了一些重要的东西,例如,什么样的数据是你在你的会话变量登录存储?

$login = $_SESSION['login']; 

当用户发送的登录数据第一时间(例如电子邮件地址和密码),你会如果存在,您应该存储在数据库中搜索上的数据(表帐户或用户,或者您需要的表格),然后会话中的用户数据(id是最重要的)。所以,当你需要访问的用户的练习,你只需要指定正确的用户ID,其中相同的条件(在这个例子$登录与用户数据的数组):

"SELECT .... FROM .... WHERE id = {$login['userId']}" 

希望这个解释足以解决你的问题。

+0

我想感谢所有帮助过我的人。解决方案很简单:使用他的ID获取与用户相关的数据。所以我把他的身份证放在一个会话上,然后调用查询。现在我有与用户有关的数据。谢谢!! – VitorTech