我是php的新手。我必须在php中使用分页显示来自mysql的记录。在我的代码中,记录正确获取,但分页不起作用。如果我点击任何页面只显示完整记录,它显示页码。
display.php
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<html>
<body>
<?php
$conn = new mysqli("localhost:3306", "root", "", "task");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$per_page= 30;
$sql="SELECT * FROM data";
$result= $conn->query($sql);
if(isset($_GET['page']) && is_numeric($_GET['page'])){
$page=$_GET['page'];
}
else{
$page = 1;
}
$start =($page - 1) * $per_page;
$sql=$sql." LIMIT $start,$per_page";
$query2 = $conn->query($sql);
?>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Ticket ID</th>
<th>Tocken Number</th>
<th>Status</th>
</tr>
<thead>
<tbody>
<?php
while ($row = $result->fetch_assoc()) {
?>
<tr>
<td><?php echo $row["ticket_id"]; ?></td>
<td><?php echo $row["tocken_no"]?></td>
<td><?php echo $row["status"] ?></td>
</tr>
<?php
};
?>
</tbody>
</table>
<?php
$row_cnt = $result->num_rows;
$pages = ceil($row_cnt/$per_page);
$page_link="<div class='pagination'>";
for($i=1; $i<=$pages; $i++)
{
$page_link .= "<a href='display.php?page=".$i."'>".$i."</a>";
}
echo $page_link . "</div>";
?>
</body>
</html>
提前致谢。
答案 0 :(得分:0)
您在代码中遗漏了一件事,从
更改代码<?php while ($row = $result->fetch_assoc()) { ?>
到
<?php while ($row = $query2->fetch_assoc()) { ?> // $query2 you should pass the variable of limit query
这应该有效!