2016-04-20 118 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