【发布时间】:2016-05-08 17:18:47
【问题描述】:
下面是我的mysql表结构,里面的值不固定,管理员可以修改。
town_name | product_name| pending_quantity
------------------------------------------
Jaipur | Mobile | 5
Jaipur | Charger | 3
Surat | wallet | 2
Surat | Mobile | 1
Surat | battery | 3
Surat | cover | 2
在我的 php 代码中,我将所有这些值存储在 3 个不同的数组中(每列一个),一切都很好。我想在 HTML 表格中显示这些数据,但它需要显示的结构对我来说是个问题。下面是预期的 HTML 表格结构。
town_name | Mobile | charger | wallet | Battery | cover
-------------------------------------------------------
Jaipur | 5 | 3 | | |
Surat | 1 | | 2 | 3 | 2
到目前为止,我已经实现了以应有的方式显示行和列标题。但我现在无法将待处理的数量值放在它的位置。
如果有任何帮助,这是我的 php 代码
<tbody>
<?php
$count = 1;
$row=0;
foreach($townid as $townKey=>$townValue) {
echo "<tr>";
echo "<td>$count</td>";
echo "<td>$townValue</td>";
foreach($items as $productKey=>$productValue) {
echo "<td>$pendingqty[$townKey]</td>";
$row++;
}
$row++;
echo "</tr>";
$count++;
}
?>
</tbody>
列标题(手机、充电器等)是动态的,城镇名称也是动态的。请帮助我通过 mysql 或 html 实现所需的结果。
在数组中获取值的 PHP 代码
$townid2 = array();
$itemname = array();
$pendingqty = array();
$items = array();
$query = mysql_query("select o.town_id as townid, od.item_name as itemname, sum(od.pending_qnty) as pendingqty FROM tbl_order o JOIN tbl_order_data od on o.id = od.order_id where month(o.order_date)='1' GROUP BY o.town_id, od.item_name ");
while($row = mysql_fetch_array($query)) {
$townid2[]=$row['townid'];
$pendingqty[] = $row['pendingqty'];
$items[] = $row['itemname'];
}
$townid = array_unique($townid2, SORT_REGULAR);
$query2 = mysql_query("select od.item_name FROM tbl_order_data od JOIN tbl_order o on o.id=od.order_id where od.order_id IN (select id from tbl_order where month(order_date)='1') group by od.item_name order by o.item_name ");
$productArray = array();
while($row2 = mysql_fetch_array($query2)) {
$productArray[] = $row2['item_name'];
}
【问题讨论】:
-
是否会出现数据库中有重复行的情况?例如两行分别是斋浦尔、充电器、数量?
-
查看生成数组的代码也会很有用
-
理查德,你的第一个问题的答案是否定的。因为我需要显示特定产品的特定城镇的待处理数量的总和。
-
获取数组中的值的代码,它只是带有组函数和求和函数的mysql查询。我也在编辑我的问题以插入 php 代码。