mysql php分页查询,使用PHP分页的MYSQL查询

我正在尝试编写一个脚本,从MYSQL数据库中提取特定查询,然后对结果进行分页.

我想我知道解决方案是什么,这只是我对如何实现/编写脚本缺乏知识的问题.

这是我的部分工作脚本:

$tstart = 0;

$tend = 0;

//$tpage = 0; // the start page

//$tpages = 0; // number of pages

$tpagelinks = ""; // stores the output pagination

$ttotal = 0; / total number of results

$trows = 5; // number of results per page

$online = ""; // stores the results to display

$dbhost = "localhost";

$dbuser = "****_models";

$dbpass = "****";

$dbcon = @mysql_connect($dbhost,$dbuser,$dbpass) or die('Database error: ' . mysql_error());

$db = mysql_select_db('****_cammodels', $dbcon) or die('Database error: ' . mysql_error());

$query = "SELECT * FROM cbmodels WHERE gender='f' AND status='Public' AND age<='22'";

$result = mysql_query($query) or die('Query failed: ' . mysql_error() . "\nQuery: $query");

while($row = mysql_fetch_array($result))

{

$online .= "#". $ttotal . " \n";

$online .= $row['status'] . "/" . $row['name'] . "/" . $row['gender'] . "/" . $row['age'] . "\n";

$online .= "
\n";

$ttotal ++;

}

$tstart = ($tpage * $trows) - $trows;

$tend = $tstart + $trows;

if ($tend > $ttotal) { $tend = $ttotal; }

$tpages = floor($ttotal / $trows);

if ($ttotal % $trows != 0) { $tpages ++; }

if ($tpage > $tpages) { $tpage = 1; }

if ($tpage > 1) { $tpagelinks .= "PREVIOUS\n"; }

for ($ti = 1; $ti <= $tpages; $ti ++)

{

if ($tpage == $ti) { $tpagelinks .= "$ti \n"; }

else { $tpagelinks .= "$ti\n"; }

}

if ($tpage < $tpages) { $tpagelinks .= "NEXT\n"; }

echo $online;

echo $tpagelinks;

mysql_close($dbcon);

?>

它正在做的是显示在数据库中找到的所有结果,分页计数似乎显示正确的页数但链接错误/不显示下一页的结果.

我想我需要先查询数据库以获取分页的行数,然后再计算页数,然后再进行另一个查询以获得结果可能会将其作为每页结果存储在另一个数组中?或者那种效果.

我已经尝试了很多次,上面的脚本是我最接近的,它几乎可以完成我的所有其他尝试只是打破脚本,或者产生奇怪的结果或根本没有.

我用来从实际提要中提取数据以存储在数据库中的脚本在线和离线标记的脚本正常工作,所以我没有包括它,因为它无论如何都是一个单独的脚本.

提前感谢您给予Guys任何帮助.

编辑

删除了所有无效的代码RE:评论.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值