我有一個庫存表,需要在每行中都有一定的數據,然後在每一行的最後一列中,我想循環列出每個特定庫存更新使用的每個項目,例如一個表格內的表格,輸出表格除了最後一行除第一行之外每行都輸出?
一行將有一列用於客戶名稱,一列用於庫存交易日期,一列用於交易類型,特定技術人員以及更新中使用的特定產品的最後一列。到目前爲止,我所得到的前4列都很好,但最後一列只是第一行產生的。代碼:
<table style="width:92%;">
<tr style="font-size:14px;">
<th style="width:150px;">Customer</th>
<th style="width:110px;">Date</th>
<th style="width:140px;">Tech</th>
<th style="width:50px;text-align:center;">Type</th>
<th>Equipment</th>
</tr>
<?php
$pd_name = array();
$compArray = array();
$prevCompany = '';
$count = 0;
$select = mysql_query("SELECT pd_name, pd_col_name, company FROM item_inventory ORDER BY company ");
while($row = mysql_fetch_array($select)){
$pd_name[$row['pd_col_name']] = $row['pd_name'];
$compArray[$row['pd_col_name']] = $row['company'];
}
$select2 = mysql_query("SELECT * FROM tech_inventory WHERE date >= '$date%' ORDER BY date DESC ");
while($row2 = mysql_fetch_array($select2)){
$count = 0;
$prevCompany = '';
?>
<tr>
<td><?php echo htmlspecialchars($row2['customerName']); ?></td>
<td><?php echo $row2['date']; ?></td>
<td><?php echo $row2['tech']; ?></td>
<td style="text-align:center;"><?php echo $row2['type']; ?></td>
<td>
<table width="200">
<?php
while (list($key, $val) = each($pd_name)){
if($row2[$key] != 0){
if($prevCompany != $compArray[$key]){
?>
<tr>
<td style="text-align:center;"><?php echo $compArray[$key]; ?></td>
</tr>
<?php
$prevCompany = $compArray[$key];
}
?>
<tr>
<td><?php echo $val ?></td>
<td><?php echo $row2[$key]; ?></td>
</tr>
<?php
$count++;
}
}
?>
</table>
</td>
</tr>
<tr><td><?php echo $count; ?></td></tr>
<?php } ?>
</table>
是的,我意識到有一些不好的做法(內聯樣式等),這只是一個粗略的草案,我會在以後清理一切。 – mlebrun15 2009-11-13 21:13:13
好吧,當我們看不到查詢的結果時,這很難說。你確定$ pd_name中有多行嗎?嘗試var_dump()它。 – Gordon 2009-11-13 21:28:37
你的不良做法讓我難以閱讀代碼,因此難以幫助你 – Galen 2009-11-13 21:47:22