  | 
              
	              
	                
  
    
	 
        ขออนุญาตปรึกษา ผู้เชี่ยวชาญครับ เรื่องการแบ่งหน้า โจทก์ยากนิดนึงครับ     | 
   
  
    |   | 
   
 
 
 
	
		
			  | 
	   | 
	    | 
		
			  | 
	 
	
		
			  | 
		 		   | 
	  	    
          
            
			
	
			
			 
                คือตอนนี้ข้อมูลมันจะเยอะแล้วโหลดช้ามาก ผมได้พยายามศึกษาจากเว็บโดยไม่รบกวนผู้เชี่ยวชาญ แต่ปรากฏว่าไม่สามารถหาทางออกได้  
คือ ผมต้องการแบ่งหน้า จากการคำนวณสินค้าคงเหลือแล้ว จากที่ในเว็บมี ผมเจอแต่แบ่งตั้งแต่การค้นหาครั้งแรก แต่ไม่มีแบ่งหน้าจากคำนวณสินค้าเสร็จแล้ว จึงขออนุญาต ช่วยให้คำแนะนำผมหน่อยครับ  
 
โค๊ดที่ใช้อยู่  เขียนเอง ไม่ได้เรียนมา ได้จาก เว็บนี้ทั้งหมด กราบจากใจ  
 
Code (PHP) 
  <body>
  
    <?php 
  session_start();
include("./lib/connect.php");
include("./css/layout.css");
include("./css/form.css");
$strSQL8 = "SELECT * FROM lf_member WHERE mid = '".$_SESSION['UserID']."' ";
  $objQuery8 = mysqli_query($conn,$strSQL8);
  $objResult8 = mysqli_fetch_array($objQuery8,MYSQLI_ASSOC);
  $sql6 = "select * from category where Category_ID = $_GET[category]";  
  $objQuery6 = mysqli_query($conn, $sql6);
   $objResult6 = mysqli_fetch_array($objQuery6,MYSQLI_ASSOC); 
?><center>
<?php 
echo $objResult6[Category_Name];
?></center>
<hr>
<?php 
//echo $_SESSION['UserID'];
$sql2 = "select * from Product_Category where Product_Category_ID = $_GET[category] ORDER BY Product_ID DESC";  
  $result2 = mysqli_query($conn, $sql2);
  echo"<table cellspacing=\"1\" cellpadding=\"1\"><tr>";
  while($row2 = mysqli_fetch_array($result2))
  {
$sql = "select * from product where Product_ID = $row2[Product_ID] ";  
  $result = mysqli_query($conn, $sql);
  while($row = mysqli_fetch_array($result))
  {
    $sqll = "select * from Productdetail where Product_ID = $row[Product_ID] AND branch_id = 1 ORDER BY Productdetail_ID DESC";  
  $resultl = mysqli_query($conn, $sqll);
  while($rowl = mysqli_fetch_array($resultl))
  {
    $strSQL2 = "SELECT SUM(product_qty) FROM orderdetail WHERE Product_Code = '".$rowl[Product_Code]."' ";
  $objQuery2 = mysqli_query($conn,$strSQL2);
  $objResult2 = mysqli_fetch_array($objQuery2,MYSQLI_ASSOC);
 $TOTALQTY=$rowl["Product_QTY"]-$objResult2["SUM(product_qty)"];
if ($TOTALQTY > 0){
  echo "<td> "; 
  $intRows++;
?>
<div><a href="productdetail.php?Product_ID=<?php echo $row["Product_ID"];?>&category=<?php echo $_GET["category"];?>"><img src=http://admin.xx.com/imageproduct/<?php echo $row["Product_PicName"]; ?> width='150'></a></div>
<div><?php echo $row["Product_Name"]; ?> ราคา <?php 
if($objResult8["statusmid"]==1){
  echo number_format($rowl["Product_wholesale_Price"],2);?><?php
}else{
echo number_format($rowl["Product_Frontshop_Price"],2);?><br>ลดเหลือ <?php echo number_format($rowl["Product_Sale_Price"],2);
}
?><br>จำนวน<?php echo $TOTALQTY;?> ชิ้น <br>
<a href="productdetail.php?Product_ID=<?php echo $row["Product_ID"];?>&category=<?php echo $_GET["category"];?>">รายละเอียดสินค้า</a></div>
  <?php 
  echo"</td>";}
      if(($intRows)%2==0)
      {
        echo"</tr>";
      }
  }}}echo"</tr></table>";
 
  ?></body>
 
 
ขออนุญาต ชี้แนะ หรือ วิธีคิด ครับ จะพยายามศึกษาครับ  
ขอบคุณครับ
 
 
  Tag : PHP               
                        | 
           
          
            | 
			
                             | 
           
          
            
              
                   | 
                   | 
                   | 
               
              
                   | 
                
                    
                      | Date :
                          2018-09-18 18:22:13 | 
                      By :
                          phatstype | 
                      View :
                          815 | 
                      Reply :
                          8 | 
                     
                  | 
                   | 
               
              
                   | 
                   | 
                   | 
               
              | 
           
          
            | 
			 | 
           
         
	    
		             | 
		
			  | 
	 
	
		
			  | 
		  | 
		
			  | 
		
			  | 
	 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 หลักๆคือต้องเพิ่ม SESSION  เก็บค่า Total ของแต่ละหน้าครับ 
จากนั้นเมื่อเปลี่ยนหน้า ก็ให้เอาค่าหน้านั้นมาแสดง 
 
เช่น หน้า 1 
 
Code (PHP) 
$_SESSION['total_of_search'][1] = array(
                                                                       'total_qty' => $total_qty,
                                                                       'total_qty' => $total_price,
);
 
 
หน้า 2 ก็จะเป็นเลข 2 
 
$_SESSION['total_of_search'][2] = array( 
                                                                       'total_qty' => $total_qty, 
                                                                       'total_qty' => $total_price, 
); 
 
ก็คือเอาเลขหน้ามาสร้างอัตโนมัตินั่นเอง 
 
$_SESSION['total_of_search'][$your_page_number] = array( 
                                                                       'total_qty' => $total_qty, 
                                                                       'total_qty' => $total_price, 
); 
 
ถ้ามีการกดค้นหาใหม่ ก็ unset($_SESSION['total_of_search']) ทิ้งไปเลยเพื่อไม่ให้ปนกัน แต่ถ้าเปลี่ยนหน้า ก็ดึงมาใช้ต่อ 
 
ทีนี้เอามาใช้ยังไง ก็ดึงมาเป็นยอดยกมา ที่แถวแรก เพื่อนำมารวมกันครับ 
 
ซึ่งยอดยกมาต้องเป็นเลขหน้าก่อนหน้าปัจจุบันก็ให้ลบ 1 
 
if(isset($_SESSION['total_of_search'][$your_page_number - 1] )){ 
     //echo แถวสำหรับยอดยกมา 
} 
 
 
หวังว่าจะตรงกับที่ต้องการนะครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-09-18 21:49:52 | 
                        By :
                            {Cyberman} | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ขออนุญาตสอบถามเพิ่มครับ กรณีนี้ แนวคิด คือ แสดงออกมาทั้งหมด ก่อน แล้ว แบ่งช่วง อีกรอบ ถูกต้องมั้ยครั บ 
 
คำถามอีกนิดครับ ถ้าแสดงออกมาทั้งหมด มันจะทำให้โหลดช้า เหมือนเดิมรึป่าวครับ หรือพอมีวิธีที่ สามารถ ลบ ต่าง table กันในคราวเดียวกันโดยผ่าน SQL มั้ยครับ แล้ว numrow เอาได้มั้ยครับ แนะนำ หน่อยครับ เผื่อ สามารถ เข้าสูตร แบ่งหน้าตามปกติได้ครับ  
 
 
ขอบคุณมากครับ ท่านบอกมา ผมเลยนึกได้อีกนิดครับ                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2018-09-18 22:32:55              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-09-18 22:31:53 | 
                        By :
                            phatstype | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ในส่วนของโค้ดที่ทำงานช้านั้น เพราะว่าท่านเอาลูปซ้อนกันถึง 3 ลูป จึงเกิดการคิวรี่หลายครั้ง 
แนะนำให้ลองปรับแต่งโดยการเก็บไว้ในอาร์เรย์เป็นชุดๆ แล้วเอามาวนลูปแสดงครั้งเดียวครับ 
 
ลองอ่านบทความ เพื่อลดจำนวนการ Query ฐานข้อมูล MySQL ที่เป็น while ซ้อนใน while 
https://www.thaicreate.com/community/php-design-query-mysql.html                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-09-19 06:37:25 | 
                        By :
                            {Cyberman} | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 แบ่งหน้าก็ใช้ server-side ของ DataTable ครับ ถ้ายังไม่ตอบโจทย์... 
ลองดู class แบ่งหน้าของ Mr.v หาดูในบอร์ดนี่ล่ะ น่าจะปรับเข้ากับงานได้                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-09-19 08:27:38 | 
                        By :
                            apisitp | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ลองไปโหลดฝั่ง database ดูบ้างก็ได้ครับ 
ตอนนี้เหมือนจะไปหนักที่ฝั่ง code เป็นหลัก 
 
ลองศึกษาเรื่องการ join ใน database ดูครับ เผื่อจะตอบโจทย์                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-09-19 09:18:33 | 
                        By :
                            Jatmentz | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เริ่มต้น session ตรงนี้ใช้งานไม่ได้ 
Code (PHP) 
 <body>
  
    <?php 
  session_start();
 
 
ต้องย้ายไปต้นไฟล์ก่อนการส่งค่าทั้งหมด 
Code (PHP) 
<?php 
  session_start();
?><!doctype html>
<html>
<body>
  
 
แต่ถ้า session ยังใช้ได้แสดงว่าคุณ ประกาศ session_start() ไว้หลายที่ 
ควรทำการเปิดให้ แสดง error ไว้ก่อน รูปแบบมาตรฐานที่ควรใช้ ขณะทดสอบโปรแกรม 
Code (PHP) 
<?php
error_reporting(-1); ini_set('display_errors', 1);
session_start();
 
 
ตรงนี้ให้ใส่ single quote ครอบด้วย ถ้าไม่ใช่ constant โปรแกรมจะทำงานเร็วขึ้น 
Code (PHP) 
<?php 
//echo $objResult6[Category_Name];
echo $objResult6['Category_Name'];
?>
  
 
การใช้งานตัวแปร get อย่าใช้ตรงๆ ให้มีการแปลง ให้อยู่ในรูปแบบใช้งาน หรือใช้เครื่องมือ ของ db tool ในการ คิวรี่ 
 
Code (PHP) 
//$sql6 = "select * from category where Category_ID = $_GET[category]";  
  //$objQuery6 = mysqli_query($conn, $sql6);
$sql6 = 'select * from category where Category_ID = ' . ($_GET['category'] * 1 );  // กรณี category เป็นตัวเลข
$objQuery6 = $conn->query($sql6);
// หรือ
$sql6 = 'select * from category where Category_ID = ?';
$stmt = $conn->prepare($sql6);
$stmt->binding('i', $_GET['category']);
$stmt->Excute();
$objQuery6=$stmt->get_result();
 
 
สำคัญมาก ศึกษา sql statement เพิ่มเติม เพื่อจะได้ ทำการ join กัน ทำให้ 2-3 ตารางมารวมกัน เป็นตารางเดียว 
สร้าง index ขึ้นมาใช้งาน จะช่วยการคิวรี่ ได้เร็วมากขึ้น แบบ มากๆๆๆๆ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-09-19 10:05:24 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 reindex database                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-09-19 17:26:47 | 
                        By :
                            xman | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ขอบพระคุณทุกท่านครับ ผมขอเก็บไปศึกษาดูก่อนครับ  
 
จะพยายามไม่รบกวนครับเพราะเชื่อว่า ตามที่คนถามมา น่าจะมีเพียงพอครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2018-09-20 11:14:39 | 
                        By :
                            phatstype | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |