Php 如果一个表中有四种类型的记录,如何从mysql表中获取数据
我需要数组或类似的记录,正如我在下面提到的 第一个答复:Php 如果一个表中有四种类型的记录,如何从mysql表中获取数据,php,mysql,Php,Mysql,我需要数组或类似的记录,正如我在下面提到的 第一个答复: |id | name | status | updated | |1 |John |Active |2018-04-12 | |2 |Peter |Active |2018-04-12 | |3 |Kenny |Inactive|2018-04-13 | |4 |Mike |Active |2018-04-14 | |5 |Neeth |Pending |2018-04-14 | |6
|id | name | status | updated |
|1 |John |Active |2018-04-12 |
|2 |Peter |Active |2018-04-12 |
|3 |Kenny |Inactive|2018-04-13 |
|4 |Mike |Active |2018-04-14 |
|5 |Neeth |Pending |2018-04-14 |
|6 |Kenith|Inactive|2018-04-15 |
第二个答复:
'Active' : [{
id:1,
name:John
},{
id:2,
name:Peter
},{
id:4,
name:Mike
}],
'Inactive' : [{
id:3,
name:Kenny
},{
id:6,
name:Neeth
}],
'Pending' : [{
id:5,
name:Kenith
}]
不能直接在查询中生成问题中所示的嵌套数组数据。 只能得到平面阵列。您必须使用PHP或任何其他服务器语言创建数组 通过循环查询结果
'2018-04-12':[{
id:1,
name:John
},{
id:2,
name:Peter
}],
'2018-04-13' : [{
id:3,
name:Kenny
}],
'2018-04-14' : [{
id:5,
name:Mike
},{
id:5,
name:Neeth
},
'2018-04-15' : [{
id:5,
name:Kenith
}]
创建数组的伪代码:
假设查询结果位于关联的数组$allrows中。输出数组$rslt将按照问题中输出的第一部分中的要求进行构造
关于第二个答案:
// Assumes query result is in an associated array ```$allrows```
$rslt = array();
foreach($allrows as $rowno => $row) {
if(!isset($rslt[$row['status']])) {
$rslt[$row['status']] = array();
}
$rslt[$row['status']][] = array('id' => $row['id'],'name' => $row['name']);
}
PHP伪代码:
假设查询结果位于关联的数组$allrows中。输出数组$rslt将按照问题中输出的第二部分中的要求进行构造
因此,它不是一个代码编写服务。展示你的尝试。这是一个简单的选择和排序。您应该尝试自己编写代码。如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。阅读请务必阅读。我需要一个sql查询来获取第一个答案/第二个答案。使用foreach和许多循环以及array_列,我可以找到相同的结果,但我需要一个查询。请帮帮我。
// Assumes query result is in an associated array ```$allrows```
$rslt = array();
foreach($allrows as $rowno => $row) {
if(!isset($rslt[$row['status']])) {
$rslt[$row['status']] = array();
}
$rslt[$row['status']][] = array('id' => $row['id'],'name' => $row['name']);
}
SELECT
`updated`,
`id`,
`name`
FROM table
ORDER BY `updated`,`id`;
// Assumes query result is in an associated array ```$allrows```
$rslt = array();
foreach($allrows as $rowno => $row) {
if(!isset($rslt[$row['updated']])) {
$rslt[$row['updated']] = array();
}
$rslt[$row['status']][] = array('id' => $row['id'],'name' => $row['name']);
}