PHP MYSQL Foreach日期列表
我有两张桌子,“表一”和“表二”。“表1”中为项目标题,“表2”中为日期和项目接收数量 SQL: 现在我得到这样的结果:PHP MYSQL Foreach日期列表,php,mysql,Php,Mysql,我有两张桌子,“表一”和“表二”。“表1”中为项目标题,“表2”中为日期和项目接收数量 SQL: 现在我得到这样的结果: title date quantity item1 2017-07-12 100 item2 2017-07-12 120 item3 2017-07-12 150 item1 2017-07-13 200 item2 2017-07-13 320 item3 2017-07-13 450 但我想得到这样的结果: 现在我用PHP编写了以下代码: &
title date quantity
item1 2017-07-12 100
item2 2017-07-12 120
item3 2017-07-12 150
item1 2017-07-13 200
item2 2017-07-13 320
item3 2017-07-13 450
但我想得到这样的结果:
现在我用PHP编写了以下代码:
<?php foreach ($AmmunitionDate as $key => $row): ?>
<tr>
<td> <?=$row['id']?> </td>
<td> <?=$row['title']?> </td>
<td> <?=$row['quantity']?> </td>
<td> </td>
</tr>
<?php endforeach ?>
我如何解决这个任务
谢谢你如果你想保持数据库的原样,让你的生活更艰难,有两种解决方案: 第一个解决方案: 对历史选项卡的项表1进行两次查询。使用PHP
echo
,构建一个javascript,其中包含包含MYSQL结果的javascript变量。然后用javascript制作一个表格
第二(更好的解决方案):
进行查询,从历史记录表中获取所需的所有内容并获取日期。有了它,您可以创建表的维度(因为您知道一个
中有多少
)。之后,在后台发出AJAX请求,并添加更多带有历史记录的表行和另一个带有名称的表行。首先,您应该处理数据并将其传递给数组
<?php
foreach($AmmunitionDate as $item){
$arr[$item['title']] = array(
$item['date'] = array(
'quantity' = $item['quantity'];
)
)
}
?>
之后,您可以使用任何循环在表中回显结果。在mysql查询中尝试这样做
SELECT t2.title, Group_concat( `t1.date` order by `t1.date`) as date,
Group_concat( t1.quantity order by `t1.date`) as quantity ,sum(`t1.quantity`) as total
FROM table2 t2
JOIN table1 t1
ON t1.id = t2.t_id
WHERE t2.date BETWEEN '2017-07-12' AND '2017-07-15' group by `t2.title`
它产生的产出为
title date quantity total
item1 2017-07-12,2017-07-13 100,200 300
item2 2017-07-12 ,2017-07-13 120,320 440
item3 2017-07-12 ,2017-07-13 450,150 600
然后分解coma分隔值并按您的意愿显示。尝试将MySQL中的结果组织到多维数组中,日期为数组键谢谢@谢谢你,这是最好的解决办法!
title date quantity total
item1 2017-07-12,2017-07-13 100,200 300
item2 2017-07-12 ,2017-07-13 120,320 440
item3 2017-07-12 ,2017-07-13 450,150 600