2013-08-30 64 views
1

我正在使用PHP和MySQL創建並列出成員目錄。我有三張桌子 - 公司,聯繫人和分支。公司有聯繫人,有些但不是所有公司都有分支機構,也有聯繫人。我使用LEFT JOIN我先查詢到接觸的人連接到他們各自的公司,並將結果加載到一個數組,該作品使用下面的代碼:如何在新的選擇查詢中使用存儲陣列中的鍵值

// Retrieve all the data from the "company" table 
$query = "SELECT * FROM company LEFT JOIN contact ON company.company_id = contact.company_id WHERE comp_county = 'BERNALILLO' ORDER BY company.comp_name, contact.cont_rank"; 

$result = mysql_query($query) 
or die(mysql_error()); 

// Build the $company_array 
$company_array = array(); 
while($row = mysql_fetch_assoc($result)) { 
    $company_array[] = $row; 
} 

現在我試圖找出如何運行第二個查詢,它需要從我的分支表中選擇company_id與存儲在我上面的數組中的company_id匹配的所有分支:$ company_array。然後我想將第二個查詢的結果存儲到名爲$ branch_array的第二個數組中。我試過這個:

// Retrieve all the matching data from the "branch" table 
foreach($company_array as $row) { 
$query2 = "SELECT * FROM branch LEFT JOIN contact ON branch.branch_id = contact.branch_id WHERE branch.company_id = '".$row['company_id']."' ORDER BY branch.br_name, contact.cont_rank"; 
$result2 = mysql_query($query2) 
or die(mysql_error()); 
} 
// Build the $branch_array 
$branch_array = array(); 
while($row2 = mysql_fetch_assoc($result2)) { 
    $branch_array[] = $row2; 
} 

但是,這似乎並沒有工作......任何人都可以給我一個如何做到這一點的例子嗎?該查詢需要運行,以便它檢查我的$ company_array中的每個不同的company_id以查找分支表中的匹配項 - 希望問題有意義。謝謝。

回答

0

我想你的,而應該是你的foreach語句裏面,這樣你的$branch_array可填充全部company_id值,結果不僅是最後一個:

foreach($company_array as $row) { 
$query2 = "SELECT * FROM branch LEFT JOIN contact ON branch.branch_id = contact.branch_id WHERE branch.company_id = '".$row['company_id']."' ORDER BY branch.br_name, contact.cont_rank"; 
$result2 = mysql_query($query2) 
or die(mysql_error()); 

// Build the $branch_array 
    $branch_array = array(); 
    while($row2 = mysql_fetch_assoc($result2)) { 
     $branch_array[] = $row2; 
    } 
} 
相關問題