|
|
|
การแบ่งหน้าข้อมูลจำนวนมาก เลขหน้าขึ้น เเต่ข้อมูลเหมือนกันทุกหน้า |
|
|
|
|
|
|
|
หมายเลขหน้าเพิ่มตามจำนวนที่เเบ่ง เเต่แสดงข้อมูลออกมาทั้งหมดเหมือนกันทุกหน้า
ช่วยดูโค๊ดทีครับ ผมตั้งไว้ที่หน้าละ 5 record เเต่ข้อมูลออกมาทั้งหมดเหมือนกันทุกหน้าเลย
(ไฟล์ connect.php)
Code (PHP)
<meta charset="UTF-8">
<?php
$connect = mysqli_connect("localhost","root","1111","osit");
if (mysqli_connect_error($connect)) {
echo "failed to connect";
}
$perpage = 5;
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 1;
}
$start = ($page - 1) * $perpage;
$sql = "SELECT * FROM inform ORDER BY id DESC limit {$start} , {$perpage} ";
$query = mysqli_query($connect, $sql);
mysqli_query($connect, "SET NAMES UTF8");
?>
ไฟล์ main.php
Code (PHP)
<!DOCTYPE html>
<html>
<head>
<?php
include "css.php";
include 'connect.php';
?>
</head>
<body class="container w3-animate-opacity">
<form>
<div class="col">
<center> <h3>รายการแจ้งซ่อม</h3> </center>
</div>
<input class="form-control" type="text" name="search" placeholder="ค้นหา" id="myInput">
</form>
<div class="table-responsive">
<!--Table-->
<table class="table table-striped">
<thead>
<tr>
<th>วันที่/เวลา</th>
<th>ผู้แจ้ง</th>
<th>อาการ</th>
<th>สถานะ</th>
<th>สาเหตุ</th>
<th>ประเภท</th>
</tr>
</thead>
<tbody id="myTable">
<?php
$query = "SELECT * FROM inform ORDER BY id DESC" or die("Error:" . mysqli_error());
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_assoc($result)) {
?>
<tr>
<td scope="row"><?php echo $row['datet'];?></td>
<td><?php echo $row['name'];?></td>
<td><?php echo $row['comm'];?></td>
<td><?php echo $row['status'];?></td>
<td><?php echo $row['cause'];?></td>
<td><?php echo $row['type'];?></td>
</tr>
<?php
}
?>
</tbody>
<!--Table body-->
</table>
<!--Table-->
<?php
$sql2 = "SELECT * FROM inform ORDER BY id DESC" or die("Error:" . mysqli_error());
$query2 = mysqli_query($connect, $sql2);
$total_record = mysqli_num_rows($query2);
$total_page = ceil($total_record / $perpage);
?>
</div>
<nav>
<ul class="pagination">
<li>
<a href="main.php?page=1" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<?php for($i=1;$i<=$total_page;$i++){ ?>
<li><a href="main.php?page=<?php echo $i; ?>"><?php echo $i; ?></a></li>
<?php } ?>
<li>
<a href="main.php?page=<?php echo $total_page;?>" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
</body>
</html>
Tag : PHP, HTML, HTML5, Laravel Framework, CakePHP, FuelPHP
|
|
|
|
|
|
Date :
2020-03-06 09:44:12 |
By :
1607845825935583 |
View :
722 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดุอันนี้ มันได้ค่ามั้ย
Code (PHP)
$start = ($page - 1) * $perpage;
|
|
|
|
|
Date :
2020-03-06 10:22:10 |
By :
mongkon.k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันก็คงต้องเหมือนเดิมล่ะครับ เพราะ query เป็นค่าที่ไม่ใช่ paginate
- ปกติ paginate ควรเอามาใส่หน้า blade ไม่ควรอย่างยิ่งที่จะเอาไปใส่ไว้ใน connect
- เปลี่ยนจาก config บรรทัดที่ 8-18 มาแทนที่ main.php บรรทัดที่ 33-34
เข้าไปศึกษาตัวอย่างได้ที่ https://www.thaicreate.com/php/php-mysql-list-record-paging.html และดูว่าของตัวเองกับ example มันต่าง หรือผิดตรงจุดไหน
|
ประวัติการแก้ไข 2020-03-06 10:25:33
|
|
|
|
Date :
2020-03-06 10:23:21 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เห็น human error ชัดเจนเลยครับ
ปัญหา
ตอนนี้คิวรี่ของเรามันไปอยู่ในไฟล์ connect ในไฟล์ connect.php ตั้งแต่บรรทัดที่ 08-18 ไม่ควรอยู่ในไฟล์นี้ครับ ควรย้ายไปในไฟล์ main หรือไฟล์ที่ต้องการแสดงผลคิวรี่นั้นๆ เป็นต้นครับ
การแก้ปัญหา
ย้ายคำสั่งจากในไฟล์ connect.php ตั้งแต่บรรทัดที่ 08-18 มาไว้ในไฟล์ main และในไฟล์ main บรรทัดที่ 33 แทนด้วยคำสั่งคิวรี่จากบรรทัดที่ 17 ของไฟล์ connect.php ครับ ถ้าสังเกตุดีๆ ไฟล์ main บรรทัดที่ 33 จะคิวรี่ธรรมดาเลย ไม่มีการ LImit และการทำ Offset ให้แสดงผลเฉพาะหน้าที่เรากดมาใดๆทั้งสิ้น นี่คือสาเหตุหลักครับ
|
|
|
|
|
Date :
2020-03-06 11:13:56 |
By :
benjaphon |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วบรรทัด 55 เพียงเพื่อจะเอาจำนวนทั้งหมดมาหาจำนวนหน้า ถึงกับต้อง query ใหม่อีกที? เปลืองไปไหม?
ลองศึกษาจากพื้นฐานก่อนเลยดีกว่ามั้ง จากเว็บที่ no.2 ให้มาก็ใช้ได้ แต่ต้องเปลี่ยนไปใช้ function mysqli ให้ถูกต้องด้วยอย่าเอาแต่ลอกๆๆ
|
|
|
|
|
Date :
2020-03-06 11:41:43 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้เเล้วครับ ขอบคุณทุกคนมากๆครับ
|
|
|
|
|
Date :
2020-03-09 14:40:10 |
By :
1607845825935583 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลอกเขามาโดยไม่ผ่านกระบวนการ คิด-วิเคราะห์-แยกแยะ
|
|
|
|
|
Date :
2020-03-09 15:21:14 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|