2013-07-18 40 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