2009-11-13 53 views
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> 
+0

是的,我意識到有一些不好的做法(內聯樣式等),這只是一個粗略的草案,我會在以後清理一切。 – mlebrun15 2009-11-13 21:13:13

+0

好吧,當我們看不到查詢的結果時,這很難說。你確定$ pd_name中有多行嗎?嘗試var_dump()它。 – Gordon 2009-11-13 21:28:37

+0

你的不良做法讓我難以閱讀代碼,因此難以幫助你 – Galen 2009-11-13 21:47:22

回答

0

這是你必須做的:

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

的問題是,each措施,通過陣列,一旦它到達終點,也不會再往前走。因此,每次都必須將數組指針重置爲開始。

+0

所以......這個工作嗎? – Franz 2009-11-13 22:39:47

+0

完美運作。非常感謝! – mlebrun15 2009-11-15 23:07:18

相關問題