1

我有一个库存表,需要在每一行中确定,然后在每一行的最后一列中,我想循环出每个特定库存更新使用的每个项目,即

一行将有一列客户名称,一列库存交易日期,一列交易类型,特定技术人员,最后一列用于更新中使用的某些产品。到目前为止,我得到的内容可以很好地循环出前 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>
4

1 回答 1

0

这是你必须做的:

reset($pd_name);
while (list($key, $val) = each($pd_name))

问题是each遍历数组,一旦到达终点,它就不会再进一步​​了。因此,您每次都必须将数组指针重置为开头。

于 2009-11-13T22:08:31.473 回答