2013-07-18 75 views
0

我基本上需要創建一個這樣的數組:http://pastebin.com/BAfRnTLzPHP +的mysqli:推數組到數組

我在我的分貝兩個不同的表。一個用於項目,另一個用於任務。每個任務都有一個它所屬項目ID的列。我需要創建一個多維數組,在其中查看與項目ID相關的每個任務ID,然後將該任務追加到正確項目的數組中。

我擔心我我會走錯方向。我一直在嘗試做這個工作兩天(現在很新)。很感謝任何形式的幫助!提前致謝!

我有這個迄今爲止

$projects = $mysqli->query("SELECT projectID, projectName FROM projects WHERE userID = '".$userID."'"); 
while (($row = $projects->fetch_assoc()) !== null) { 
print_r($row); 

$projectID = $row['projectID']; 
$tasks = $mysqli->query("SELECT * FROM tasks WHERE projectID = '".$projectID."'"); 
while (($row = $tasks->fetch_assoc()) !== null) { 
    print_r($row); 
} 
+0

**您可以自己開放SQL注入。**請了解使用參數化查詢,最好是使用PDO模塊來保護您的Web應用程序。 http://bobby-tables.com/php有例子讓你開始。 –

+0

請將示例代碼直接粘貼到問題中,而不是發佈到像pastebin這樣的外部服務。外部代碼可以隨時消失,並且不存在像SO問題那樣的版本控制。因此,未來的讀者可能無法看到外部代碼,因此這個問題將毫無用處或沒有多大意義。 ** StackOverflow與其他人的未來參考一樣多,因爲它是關於您今天得到您的問題的答案。** –

回答

0

聯接會更適合這個,但你可以在一起螺栓他們這樣假設你沒有一個領域的項目叫tasks

$p = array(); 

$projects = $mysqli->query("SELECT projectID, projectName FROM projects WHERE userID = '".$userID."'"); 
while (($row = $projects->fetch_assoc()) !== null) { 
    $p[$row['projectID']] = $row; 
} 

$projectID = $row['projectID']; 
$tasks = $mysqli->query("SELECT * FROM tasks WHERE projectID = '".$projectID."'"); 
while (($row = $tasks->fetch_assoc()) !== null) { 
    $p[$row['projectID']]['tasks'][] = $row; 
} 

print_r($p); 
+0

謝謝!所以我得到了這個工作(不得不把$任務放在$ loop項目的while循環中),但是我怎樣才能讓這個數組看起來像http://pastebin.com/BAfRnTLz? – user1525

+0

或者,我怎樣才能JSON編碼它? – user1525