2014-02-08 107 views
0

因此,在我的phpmyadmin數據庫中,我有兩個表,「用戶」和「調色板」。在我的PHP腳本中,我解析來自'用戶'的數據並輸出單獨的html文件中的信息。我的目標是在表'調色板'上執行SQL查詢,但只搜索'用戶'的結果。例如,我的'用戶'查詢返回100個用戶。我想現在在「調色板」上搜索那些相同的100個用戶,以返回其匹配的「調色板」信息。例如:如何在以前的查詢結果上執行SQL搜索

$pal_sql = "SELECT * FROM palette WHERE (user subscription_plan!='NULL')"; 
$pal_query = mysqli_query($dbs, $pal_sql); 
$activerPalUsers = mysqli_num_rows("pal_query); 
if(mysqli_num_rows($user_query) >= 1){ 
    while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) { 
... 

我想要的結果與上面的代碼類似。這可能嗎?什麼是最好的方法。以下是我的工作代碼,用於搜索活動的「用戶」。

「調色板」表包含有關「用戶」中按id排序的每個用戶的其他信息。我只想解析活動用戶的調色板數據。第一個查詢顯示活動用戶,但我無法檢查用戶是否僅在「調色板」表中處於活動狀態。

<?php 
    $sql = "SELECT * FROM users WHERE subscription_plan!='NULL' ORDER BY id ASC"; 
    $user_query = mysqli_query($dbc, $sql); 
    $activeUsers = mysqli_num_rows($user_query); 
    if(mysqli_num_rows($user_query) >= 1){ 
     while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) { 
      $userData .= "<tr>"; //general user information 
      $userData .= "<td>"; 
      $userData .= $row["id"]; 
      $userData .= "</td>"; 
      $userData .= "<td>"; 
      $userData .= $row["email"]; 
      $userData .= "</td>"; 
      $userData .= "<td>"; 
      $userData .= $row["firstname"]."&nbsp;".$row["lastname"]; 
      $userData .= "</td>"; 
      $userData .= "<td>"; 
      $userData .= $row["subscription_plan"]; 
      $userData .= "</td>"; 
      $userData .= "<td>"; 
      $userData .= $row["ship_name"]; 
      $userData .= "</td>"; 
      $userData .= "<td>"; 
      $userData .= $row["address"]; 
      $userData .= "</td>"; 
      $userData .= "</tr>"; 
     } 
    } else { 
     $userData = "<tr><td colspan='6' style='text-align: center;'><strong>No listings found...</strong></td></tr>"; 
    } 
?> 

讓我知道我的問題是否有意義,如果需要,我可以嘗試以不同的方式重新解釋它。謝謝你的時間。

回答

0

「我的目標是在桌子‘調色板’,但只搜索執行SQL查詢'用戶'的結果。「

很難找出你想要通過上面的什麼,但一個合格的猜測是,你正在尋找如何連接表

例子:

在這種情況下,選擇了兩個表在基於users.id和palette.user_id的值之間的關係的相同查詢中)

SELECT * FROM palette 
JOIN users ON (users.id = palette.id) 
WHERE (users.subscription_plan!=NULL) 
+0

「用戶」和「調色板」都有一個可以找到特定用戶的「ID」字段。但是,'用戶'可以確定用戶是否處於活動狀態或非活動狀態,而'調色板'包含所有活動用戶和非活動用戶。我還可以加入嗎?編輯:'palette'沒有'subscription_plan'字段 – ryank

+1

嘗試查詢並查看它的作用。 – dvntehn00bz

+0

我不太明白。我已將obvius = fieldnames從user_id更改爲id,將palette.subscription_plan更改爲users.subscription_plan。你可以在你的問題中提供你的db-schema嗎?我認爲這會更容易找出你要求的東西。 – bestprogrammerintheworld

0

您可以在查詢中使用JOIN功能在某些情況下連接兩個表的記錄。因此只需一個查詢,您就可以訪問所需的所有數據。而且你的php代碼的複雜性也會降低。

+0

嗨,你能提供一個例子嗎?我仍然試圖瞭解JOIN如何解決我的問題 – ryank