1

各行に特定する必要がある在庫テーブルがあり、各行の最後の列で、特定の在庫更新ごとに使用された各アイテムをループアウトしたい

1 つの行には、顧客名用の 1 つの列、在庫トランザクションの日付用の 1 つの列、トランザクションのタイプ用の 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 に答える