douyun8901 2013-07-18 20:51
浏览 31

PHP + mysqli:将数组推入数组

I basically need to create an array like this: http://pastebin.com/BAfRnTLz

I have two different tables in my db. One for projects and one for tasks. Each task has a column for the project id it belongs to. I need to create a multidimensional array where I look at each tasks ID in relation to the projects id, and append that task to the array of the correct project.

I fear i i'm going in the wrong direction. I have been trying to make this work for two days now (very new at this). Any help is very much appreciated! Thanks in advance!

I have this so far

$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);
}
  • 写回答

1条回答 默认 最新

  • dra87370 2013-07-18 20:57
    关注

    A join would be better suited for this but you could bolt them together like this assuming you don't have a field called tasks in projects.

    $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);
    
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法