分页显示问题 php
Pagination displaying issue php
在简单分页中,点击不同的编号时。来自 table 的 1,2,3,4,
条记录未更改
他们应该这样做。
我在每个页面上显示 5
条记录,点击 1
它显示从 table 1
到 5
的记录,所以 on.But ,不是changing.Help我
<?php
mysql_connect("localhost","root","");
mysql_select_db("bluewater");
$page = $_GET["page"];
if($page=="" || $page=="1")
{
$page1=0;
}
else
{
$page1=($page*5)-5;
}
$sql=mysql_query("select * from countries limit 1,5");
while($ser = mysql_fetch_array($sql)) {
echo $ser["ccode"];
echo $ser["country"];
echo "<br>";
}
$sql=mysql_query("select * from countries");
$cou=mysql_num_rows($sql);
$a=$cou/5;
$a= ceil ($a);
echo "<br>"; echo "<br>";
for ($b=1;$b<=$a;$b++)
{
?><a href="index.php?page=<?php echo $b; ?>" style="text-decoration:none"><?php echo $b." ";?></a> <?php
}
?>
您从不在查询中使用 $page
变量。改成
select * from countries limit ".$page.", 5
它应该可以工作
此外,mysql_real_escape_string($page)
!
1) 不要使用mysql_函数,使用mysqli_ or PDO.
2) 要通过页面移动,您需要增加查询中的偏移量。
$page = $_GET['page'];
$itemsPerPage = 5;
$offset = ($page * $itemsPerPage) - $itemsPerPage;
$query = $db->prepare("SELECT * FROM `countries` LIMIT {$itemsPerPage} OFFSET {$offset}");
$query->execute();
$results = $query->fetchAll();
只需将您的第一个 sql 查询替换为我的 sql 查询:
您的 sql 查询
$sql=mysql_query("select * from countries limit 1,5");
您提供的静态开始限制是“1”
更正 Sql 查询:
$sql=mysql_query("select * from countries limit $page1,5");
使其静态限制为$page1变量。
$sql=mysql_query("select * from countries limit $page1,5");
用上面的代码替换第一个查询。
试试这个approach.It更容易理解。
//数据库连接代码
$left_rec=$rec_count-($page*$rec_limit);
$res=mysqli_query("select * from countries");
$rec_count=mysqli_num_rows($res);//记录总数
如果(isset($_GET['page']))
{
$page=$_GET['page']+1;
$offset=$rec_limit*$page;
}
否则
{
$页=0;
$偏移量=0;
}
$rec_limit=5;//每页记录数
$offset=$page*$rec_limit;
$left_rec=$rec_count-($page*$rec_limit);
$res=mysqli_query("select * from countries limit $offset,$rec_limit");
while($row = mysqli_fetch_array($res))
{
echo $行["ccode"];
echo $行["country"];
回声“
”;
}
如果($page==0)
{
回声"Next";
}
否则如果($left_rec <= $rec_limit)
{
$last=$page-2;
回声"Prev";
}
?>
在简单分页中,点击不同的编号时。来自 table 的 1,2,3,4,
条记录未更改
他们应该这样做。 5
条记录,点击 1
它显示从 table 1
到 5
的记录,所以 on.But ,不是changing.Help我
<?php
mysql_connect("localhost","root","");
mysql_select_db("bluewater");
$page = $_GET["page"];
if($page=="" || $page=="1")
{
$page1=0;
}
else
{
$page1=($page*5)-5;
}
$sql=mysql_query("select * from countries limit 1,5");
while($ser = mysql_fetch_array($sql)) {
echo $ser["ccode"];
echo $ser["country"];
echo "<br>";
}
$sql=mysql_query("select * from countries");
$cou=mysql_num_rows($sql);
$a=$cou/5;
$a= ceil ($a);
echo "<br>"; echo "<br>";
for ($b=1;$b<=$a;$b++)
{
?><a href="index.php?page=<?php echo $b; ?>" style="text-decoration:none"><?php echo $b." ";?></a> <?php
}
?>
您从不在查询中使用 $page
变量。改成
select * from countries limit ".$page.", 5
它应该可以工作
此外,mysql_real_escape_string($page)
!
1) 不要使用mysql_函数,使用mysqli_ or PDO.
2) 要通过页面移动,您需要增加查询中的偏移量。
$page = $_GET['page'];
$itemsPerPage = 5;
$offset = ($page * $itemsPerPage) - $itemsPerPage;
$query = $db->prepare("SELECT * FROM `countries` LIMIT {$itemsPerPage} OFFSET {$offset}");
$query->execute();
$results = $query->fetchAll();
只需将您的第一个 sql 查询替换为我的 sql 查询:
您的 sql 查询 $sql=mysql_query("select * from countries limit 1,5");
您提供的静态开始限制是“1”
更正 Sql 查询: $sql=mysql_query("select * from countries limit $page1,5");
使其静态限制为$page1变量。
$sql=mysql_query("select * from countries limit $page1,5");
用上面的代码替换第一个查询。
试试这个approach.It更容易理解。
//数据库连接代码
$left_rec=$rec_count-($page*$rec_limit);
$res=mysqli_query("select * from countries");
$rec_count=mysqli_num_rows($res);//记录总数
如果(isset($_GET['page']))
{
$page=$_GET['page']+1;
$offset=$rec_limit*$page;
}
否则
{
$页=0;
$偏移量=0;
}
$rec_limit=5;//每页记录数
$offset=$page*$rec_limit;
$left_rec=$rec_count-($page*$rec_limit);
$res=mysqli_query("select * from countries limit $offset,$rec_limit");
while($row = mysqli_fetch_array($res))
{
echo $行["ccode"];
echo $行["country"];
回声“
”;
}
如果($page==0)
{
回声"Next";
}
否则如果($left_rec <= $rec_limit)
{
$last=$page-2;
回声"Prev";
}
?>