จากตัวอย่างในนี้ เรื่องการแบ่งหน้า mysqli-paging ทำไมเวลาทำแล้วมันแสดงเพี้ยนครับ
ที่ผมงงคือตรงนี้ครับ
Code (PHP)
$row_end = $per_page * $page;
if($row_end > $num_rows)
{
$row_end = $num_rows;
}
$sql = "SELECT data_user.*,data_car.*,data_prb.*,data_ins.* FROM data_user
left JOIN data_car on data_user.id=data_car.id
left JOIN data_prb on data_user.id=data_prb.id
left join data_ins on data_user.id=data_ins.id
WHERE data_user.member_id = '$_SESSION[login_true]'
ORDER BY data_user.id desc LIMIT $row_start ,$row_end";
ผมลองแก้ไข
ORDER BY data_user.id desc LIMIT $row_start ,$row_end";
เป็น
ORDER BY data_user.id desc LIMIT $row_start ,3";
และลองเทสดู มันแสดงได้ปกติครับ
ขอคำแนะนำตรง code นี้หน่อยครับ ว่าจะยังไงดีครับ
Code (PHP)
$row_end = $per_page * $page;
if($row_end > $num_rows)
{
$row_end = $num_rows;
}
thank you
Date :
2016-02-19 23:44:42
By :
lhumdin
คุณเขียน SQL ผืด ไปเขียน 2 ครั้งครับ ซึ่งในตัวอย่างมันเขียนแค่ ครั้งเดียว ตัวล่างจะเป็น LIMIT
Date :
2016-02-19 23:50:01
By :
mr.win
ลองแก้ไขแบบนี้ครับ แต่ยังมะได้ครับ
Code (PHP)
<?php
include("config_mysqli.php") ;
$sql = "SELECT data_user.*,data_car.*,data_prb.*,data_ins.* FROM data_user
left JOIN data_car on data_user.id=data_car.id
left JOIN data_prb on data_user.id=data_prb.id
left join data_ins on data_user.id=data_ins.id
WHERE data_user.member_id = '$_SESSION[login_true]'
and (name LIKE '%".$strKeyword."%' or car_num LIKE '%".$strKeyword."%')";
$query = mysqli_query($conn,$sql);
$num_rows = mysqli_num_rows($query);
$per_page = 3; // Per Page
$page = 1;
if(isset($_GET["Page"]))
{
$page = $_GET["Page"];
}
$prev_page = $page-1;
$next_page = $page+1;
$row_start = (($per_page*$page)-$per_page);
if($num_rows<=$per_page)
{
$num_pages =1;
}
else if(($num_rows % $per_page)==0)
{
$num_pages =($num_rows/$per_page) ;
}
else
{
$num_pages =($num_rows/$per_page)+1;
$num_pages = (int)$num_pages;
}
$row_end = $per_page * $page;
if($row_end > $num_rows)
{
$row_end = $num_rows;
}
$sql .= " ORDER BY data_user.id desc LIMIT $row_start ,$row_end ";
$query = mysqli_query($conn,$sql);
echo($sql);
?>
,$row_end ก็ยังไม่ได้ เพี้ยนเหมือนเดิมครับ
ประวัติการแก้ไข 2016-02-20 09:13:39
Date :
2016-02-20 00:01:58
By :
lhumdin
งง ลองลบละทำใหม่อีกที ก็ยังมะได้เลย
ผมแก้ไขเป็นแบบนี้ มันจะส่งผลอะไรในโอกาศหน้ามั้ยครับ ถ้าข้อมูลมันเยอะขึ้นไรแบบนี้
$sql .= " ORDER BY data_user.id desc LIMIT $row_start ,$per_page ";
เปลี่ยนใส่ $per_page แทน $row_end
ประวัติการแก้ไข 2016-02-20 09:39:09
Date :
2016-02-20 09:14:57
By :
lhumdin
Load balance : Server 02