2011-05-29 85 views
0

我在獲取某些單元格的apprpriate值時遇到問題....在第一頁中,我得到了相應的結果..但在接下來的頁面中,值對於產品信息,訂單中的總價格和利潤都爲0,但所有其他字段都包含正確的信息。PHP在多個頁面中拆分記錄無法正常工作

五個記錄每頁顯示的。該代碼下面給出:

<?include"dbconnect.php"?> 
session_start(); 
?> 
    <?include "adminhead.php"?> 
    <?include "adminleftnav.php"?> 
<div id="seasonal"> 
    <table width="635" border="0" align="left" bgcolor="#CCCCCC" > 
     <tr> 
      <td> 
       <table width="635" border="0" align="left" > 
        <tr> 
         <td width="52" bgcolor="#E0EBED">Order Number</td> 
         <td width="150" bgcolor="#E0EBED">Product Information</td> 
         <td width="100" bgcolor="#E0EBED">Total Price(TK)</td> 
         <td width="90" bgcolor="#E0EBED">Order Date</td> 
         <td width="80" bgcolor="#E0EBED">Payment Status</td> 
         <td width="100" bgcolor="#E0EBED">Profit from order(TK)</td> 
        </tr> 
       </table> 
      </td> 
     </tr> 

       <?php 
    if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; }; 
    $start_from = ($page-1)*5 ; 
    $sql = "Select distinct order_no,date,payment_status from product_order_info order by order_no ASC LIMIT $start_from,5"; 
    $query_for_order1 = mysql_query ($sql); 
    ?> 
     <tr> 
      <td> 
       <table id="foo" border="1" bgcolor="#f4eddb" cellspacing="2" cellborder="2" width=635> 




        <? while($row_for_my_order1=mysql_fetch_assoc($query_for_order1)) 
        { 
         ?> 
        <tr> 
         <td width=52> 
         <?echo $row_for_my_order1['order_no'];?> 
         </td> 
         <td width=156> 

         <? 
         $sql1 = "Select * from product_order_info where order_no= '$row_for_my_order1[order_no]' order by order_no ASC LIMIT $start_from,5"; 

         $query_for_order = mysql_query($sql1); 

         while($row_for_my_order=mysql_fetch_assoc($query_for_order)) 

         { 
          $query_for_product_details=mysql_query("select * from product where product_no='$row_for_my_order[product_id]' "); 
          $row_for_product_details=mysql_fetch_array($query_for_product_details); 
          ?> 
          <br> 
          <?echo $row_for_product_details['product_name']; 
          ?> 
          <br> 
          Quantity 
          <?echo $row_for_my_order['quantity']; 
          } 
          ?> 
         </td> 
         <td width=106> 
          <? 
          $total=0; 
          $sql1 = "Select * from product_order_info where order_no= '$row_for_my_order1[order_no]' order by order_no ASC LIMIT $start_from,5"; 

         $query_for_order = mysql_query($sql1); 



          while($row_for_my_order2=mysql_fetch_assoc($query_for_order)) 
          { 
          $query_for_product_details=mysql_query("select * from product where product_no='$row_for_my_order2[product_id]' "); 
          $row_for_product_details=mysql_fetch_array($query_for_product_details); 

          $total = $total+ $row_for_product_details['sell_price'] * $row_for_my_order2['quantity']; 

          } 
          echo $total; 
         ?> 
         </td> 
         <td width=90> 

        <?echo $row_for_my_order1['date'];?> 
         </td> 
         <td> 
         <?echo $row_for_my_order1['payment_status'];?> 
         </td> 
         <td width=100> 
         <? $total=0; 
         $sql1 = "Select * from product_order_info where order_no= '$row_for_my_order1[order_no]' order by order_no ASC LIMIT $start_from,5"; 

         $query_for_order = mysql_query($sql1); 


        while($row_for_my_order3=mysql_fetch_assoc($query_for_order)) 
        { 

        $total=$total+$row_for_my_order3['profit']; 
        } 

        echo $total; ?> 
         </td> 
        </tr> 
       <? 
       } 
       ?> 
       </table> 
</div> 

    <?php 
    $sql = "SELECT DISTINCT COUNT(order_no) FROM product_order_info"; 
    $rs_result = mysql_query($sql); 
    $row = mysql_fetch_row($rs_result); 
    $total_records = $row[0]; 
    $total_pages = ceil($total_records/5); 

    for ($i=1; $i<=$total_pages; $i++) { 
       echo "<a href='view_order.php?page=".$i."'>".$i."</a> "; 
    }; 
    ?> 
    <?include "footer1.php"?> 

請幫我在這方面...

+0

要很多代碼能夠調試,我確實看到循環內查詢的問題,通常是一個糟糕的想法,看起來像第一個查詢可能會被重寫,以獲得所有必要的數據。 – 2011-05-29 20:38:59

+0

@Dagon請你可以重寫第一個查詢或給我一個方法如何做到這一點... – user752710 2011-05-29 20:45:29

+0

我將不得不更多地瞭解你的所作所爲,以便能夠提供幫助,所以不需要。 – 2011-05-29 20:58:10

回答

0

你應該從每一個查詢刪除LIMIT $start_from,5除了第一個。正如Dagon指出的,您應該考慮使用單個查詢的可能性,以減少對SQL服務器的查詢數量。