Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,976

HOME > PHP > PHP Forum > ขออนุญาตปรึกษา ผู้เชี่ยวชาญครับ เรื่องการแบ่งหน้า โจทก์ยากนิดนึงครับ



 

ขออนุญาตปรึกษา ผู้เชี่ยวชาญครับ เรื่องการแบ่งหน้า โจทก์ยากนิดนึงครับ

 



Topic : 132086



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์




คือตอนนี้ข้อมูลมันจะเยอะแล้วโหลดช้ามาก ผมได้พยายามศึกษาจากเว็บโดยไม่รบกวนผู้เชี่ยวชาญ แต่ปรากฏว่าไม่สามารถหาทางออกได้
คือ ผมต้องการแบ่งหน้า จากการคำนวณสินค้าคงเหลือแล้ว จากที่ในเว็บมี ผมเจอแต่แบ่งตั้งแต่การค้นหาครั้งแรก แต่ไม่มีแบ่งหน้าจากคำนวณสินค้าเสร็จแล้ว จึงขออนุญาต ช่วยให้คำแนะนำผมหน่อยครับ

โค๊ดที่ใช้อยู่ เขียนเอง ไม่ได้เรียนมา ได้จาก เว็บนี้ทั้งหมด กราบจากใจ

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







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-09-18 18:22:13 By : phatstype View : 235 Reply : 8
 

 

No. 1



โพสกระทู้ ( 1,767 )
บทความ ( 10 )



สถานะออฟไลน์
Twitter Facebook Blogger

หลักๆคือต้องเพิ่ม 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}
 


 

No. 2



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


ขออนุญาตสอบถามเพิ่มครับ กรณีนี้ แนวคิด คือ แสดงออกมาทั้งหมด ก่อน แล้ว แบ่งช่วง อีกรอบ ถูกต้องมั้ยครั บ

คำถามอีกนิดครับ ถ้าแสดงออกมาทั้งหมด มันจะทำให้โหลดช้า เหมือนเดิมรึป่าวครับ หรือพอมีวิธีที่ สามารถ ลบ ต่าง table กันในคราวเดียวกันโดยผ่าน SQL มั้ยครับ แล้ว numrow เอาได้มั้ยครับ แนะนำ หน่อยครับ เผื่อ สามารถ เข้าสูตร แบ่งหน้าตามปกติได้ครับ


ขอบคุณมากครับ ท่านบอกมา ผมเลยนึกได้อีกนิดครับ


ประวัติการแก้ไข
2018-09-18 22:32:55
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-18 22:31:53 By : phatstype
 

 

No. 3



โพสกระทู้ ( 1,767 )
บทความ ( 10 )



สถานะออฟไลน์
Twitter Facebook Blogger

ในส่วนของโค้ดที่ทำงานช้านั้น เพราะว่าท่านเอาลูปซ้อนกันถึง 3 ลูป จึงเกิดการคิวรี่หลายครั้ง
แนะนำให้ลองปรับแต่งโดยการเก็บไว้ในอาร์เรย์เป็นชุดๆ แล้วเอามาวนลูปแสดงครั้งเดียวครับ

ลองอ่านบทความ เพื่อลดจำนวนการ Query ฐานข้อมูล MySQL ที่เป็น while ซ้อนใน while
https://www.thaicreate.com/community/php-design-query-mysql.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-19 06:37:25 By : {Cyberman}
 


 

No. 4



โพสกระทู้ ( 5,093 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


แบ่งหน้าก็ใช้ server-side ของ DataTable ครับ ถ้ายังไม่ตอบโจทย์...
ลองดู class แบ่งหน้าของ Mr.v หาดูในบอร์ดนี่ล่ะ น่าจะปรับเข้ากับงานได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-19 08:27:38 By : apisitp
 


 

No. 5



โพสกระทู้ ( 157 )
บทความ ( 0 )



สถานะออฟไลน์


ลองไปโหลดฝั่ง database ดูบ้างก็ได้ครับ
ตอนนี้เหมือนจะไปหนักที่ฝั่ง code เป็นหลัก

ลองศึกษาเรื่องการ join ใน database ดูครับ เผื่อจะตอบโจทย์
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-19 09:18:33 By : Jatmentz
 


 

No. 6



โพสกระทู้ ( 7,993 )
บทความ ( 2 )



สถานะออฟไลน์


เริ่มต้น 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
 


 

No. 7

Guest


reindex database
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-19 17:26:47 By : xman
 


 

No. 8



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบพระคุณทุกท่านครับ ผมขอเก็บไปศึกษาดูก่อนครับ

จะพยายามไม่รบกวนครับเพราะเชื่อว่า ตามที่คนถามมา น่าจะมีเพียงพอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-20 11:14:39 By : phatstype
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขออนุญาตปรึกษา ผู้เชี่ยวชาญครับ เรื่องการแบ่งหน้า โจทก์ยากนิดนึงครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่