下面是我的mysql表结构,里面的值是不固定的,可以通过admin更改。
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实现所需的结果。
$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_query,因为您这样做了,但已弃用,因此您确实应该进行切换):
$things = array();
$columns = array('Mobile','charger','wallet','Battery','cover'); //this can/should be populated dynamically using a distinct product query, but I'm hard-coding it because I'm lazy
$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)) {
$things[$row['townid']][$row['itemname']] = $row['pendingqty'];
}
... //whatever code until you're ready for the table
echo "<table><thead><tr>";
foreach($columns as $column){
echo "<th>".$column."</th>";
}
echo "</tr><thead><tbody>";
foreach($things as $key=>$value){
echo "<tr><td>".$key."</td>";
foreach($columns as $column){
echo "<td>".(isset($value[$column]) ? $value[$column] : null)."</td>";
}
echo "</tr>";
}
echo"</tbody></table>";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句