php - 解析sql响应数组

标签 php mysql arrays

Sql 响应如下所示:名称|地点|日期|地址。行可以包含相同的名称、位置和日期,但地址每次都会更改。因此,我需要将此响应放入数组中,如下所示:

[0] => 'Name':'...',
       'Locality':'...',
       'Date':'...',
       'Address': [0] => '...',
                  [1] => '...',
                  [2] => '...',
                  ...
...

我尝试使用此代码,但不起作用=(

while($r = mysqli_fetch_assoc($q_res)){
    $i = 0;

    if(!in_array($r['watcher_name'], $daily_quests)){          
        $daily_quests[$i]['name'] = $r['name'];
        $daily_quests[$i]['date'] = $r['date'];
        $daily_quests[$i]['locality'] = $r['locality'];
    }
    else{
        $daily_quests['address'] = $intrnal_addr[$i => $r['address']];
    }

}

最佳答案

试试这个:

//Initialisation
$name = '';
$daily_quests = array();
$i = -1;

while($r = mysqli_fetch_assoc($q_res)){

    //If the row is different than precedent
    if (strcmp($r['name'], $name) != 0)
    {
        $i++;
        $name = $r['name'];
        $daily_quests[$i] = array();
        $daily_quests[$i]['name'] = $r['name'];
        $daily_quests[$i]['date'] = $r['date'];
        $daily_quests[$i]['locality'] = $r['locality'];
        $daily_quests[$i]['address'] = array(); 
    }
    // For each row, we must add address
    $daily_quests[$i]['address'][] = $r['address']
}

但是,我们假设该名称是唯一的。与 id 进行比较更安全。

关于php - 解析sql响应数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45750435/

相关文章:

php - 我的列不为空,但我收到此错误 : Unknown column '' in 'where clause'

mysql - 如何在不使用 group by 的情况下为此 sql 查询获得相同的结果?

php - 从 GPS 获取当前标记位置并保存到 mySQL

javascript - javascript中数组排序方法的困惑点

c++ - 如何在 C++11 中创建线程对象数组?

c++ - 'delete' 的数组形式是什么?

php - Sql 结果作为 bool 值而不是资源返回

php - 无法从 mySQL 的行中获取数据以打印出来-PHP

php - 数据库设计数值范围

php - 如何从当前位置从数据库中获取信息?