PHP+mysql分页的问题,我用了php万能分页的代码,但是不好用,请帮我看看是啥问题?说19行不对,请指教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP+mysql分页的问题,我用了php万能分页的代码,但是不好用,请帮我看看是啥问题?说19行不对,请指教相关的知识,希望对你有一定的参考价值。

<?php include_once('page.class.php');?>
<link rel="stylesheet" type="text/css" href="css/css.css" />
<?php
header("Content-type:text/html;charset=utf-8");
$mysql_server_name="localhost"; //数据库服务器名称
$mysql_username="root"; // 连接数据库用户名
$mysql_password="123456"; // 连接数据库密码
$mysql_database="td_oa"; // 数据库的名字

// 连接到数据库
$conn=mysql_connect($mysql_server_name, $mysql_username,
$mysql_password);
//解决乱码
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS='UTF8'");
$pageSize=2;
$page=1;//////////////////------------------------------------>这是19行
$total="select count(*) from `crm_storage` a left join `crm_order` b
on a.field4=b.field2 and a.field8=b.field16
where (b.field8=0 or b.field8 is null)
and DATE_ADD(a.field5,INTERVAL 4 day)<CURDATE() LIMIT $page,$pageSize";
pageft($total,$pageSize,0,1,0,5);
// 从表中提取信息的sql语句
// $strsql="SELECT * FROM `crm_order`";
$strsql="select a.field4 as '车号',a.field8 as'任务号',a.field5 as'装货日期' ,a.field6 as'供应商名称',a.field7 as'采购价格' from `crm_storage` a left join `crm_order` b
on a.field4=b.field2 and a.field8=b.field16
where (b.field8=0 or b.field8 is null)
and DATE_ADD(a.field5,INTERVAL 4 day)<CURDATE() LIMIT $page,$pageSize";

// 执行sql查询
$result=mysql_db_query($mysql_database, $strsql, $conn);
// 获取查询结果
$row=mysql_fetch_row($result);

//echo "<input type='button' onclick=\"window.location='index.php'\" value='查询逾期未卸货车辆信息' />";
echo "<input type='button' style='width:100px;height:50px;background:#CCCCCC;color:#6495ED;font-weight:bold;font-size: 20px' onclick=\"history.go(-1)\" value='返回'/>";
echo "<font face='verdana'>";
echo "<table border='2' cellpadding='1' cellspacing='0' align='center' bordercolor='#6495ED' >";

// 显示字段名称
echo "</b><tr></b>";
for ($i=0; $i<mysql_num_fields($result); $i++)

echo '<td bgcolor="#ffffff"><b>'.
mysql_field_name($result, $i);
echo "</b></td></b>";

echo "</tr></b>";
// 定位到第一条记录
mysql_data_seek($result, 0);
// 循环取出记录
while ($row=mysql_fetch_row($result))

echo "<tr></b>";
for ($i=0; $i<mysql_num_fields($result); $i++ )

echo '<td bgcolor="#ffffff">';
echo $row[$i];
echo '</td>';

echo "</tr></b>";


echo "</table></b>";
echo "</font>";
// 释放资源
mysql_free_result($result);
// 关闭连接
mysql_close($conn);
?>
<div class="pager"><?php echo $pagenav;?></div>
运行的时候提示我

参考技术A 刚才下载了类包看了看,
1、$page 变量名已经被使用,且声明为全局变量所以你不用再次定义$page,也就是说,使用帮助有错误,且limit 条件不应该是$page ,而应该是

$start = ($page-1)*$pageSize;//(当前页码-1)* 每页的显示条目
$strsql = " limit $start,$pageSize ";// limit 起始,每页条目
2、你定义的$total 并未得到数值,而是一条SQL语句(字符串),其次查询$total 时不要带 limit参数
3、代码(对应你注释的19行的上一行到你写的注释SQL自己加进去吧)
$pageSize=2;

$allusers = "select * from `users`";
$result = mysql_query($allusers);
$total = mysql_num_rows($result);
pageft($total,$pageSize,1,1,1,5);

$start = ($page-1)*$pageSize;
$strsql = $allusers ." limit $start,$pageSize ";
// 从表中提取信息的sql语句

// $strsql="SELECT * FROM `crm_order`";
// 执行sql查询
$result=mysql_query($strsql, $conn);
// 获取查询结果
4、

题外:APPserver 报错后必须多次刷新或重启Apache才能清除上一次的错误输出追问

我给您发私信了,请您看一下。

追答

$allusers = "select * from `users`";
这是我写的 SQL 例子,你要改成你自己的SQL查询语句,
大概是这样
$strsql="select a.field4 as '车号',a.field8 as'任务号',a.field5 as'装货日期'
,a.field6 as'供应商名称',a.field7 as'采购价格' from `crm_storage` a left join
`crm_order` b
on a.field4=b.field2 and a.field8=b.field16
where (b.field8=0 or b.field8 is null)
and DATE_ADD(a.field5,INTERVAL 4 day)<CURDATE()“;
然后把$allusers 改为$strsql;

e'其实你私信的不是我,请问问题解决了吗?

参考技术B 20行的sql语句你改一下,table1 as a left join table2 as b。。。。。然后你在打印sql语句,并且die终止程序运行,看是否还是这个错误。追问

不是这个原因的,我按照你说的做了。

追答

结果是什么,还是这个错误吗???那就把有关分页的部分都注释掉,只是普通的select或者排序,如果正常再去排查你的Page分页类。

任何用于分页的 PHP 库/类 [重复]

【中文标题】任何用于分页的 PHP 库/类 [重复]【英文标题】:Any PHP Library/Class for Pagination [duplicate] 【发布时间】:2010-11-14 14:07:16 【问题描述】:

可能重复:PHP pagination class

是否有任何 PHP/Class 库可供我使用和自定义我的解决方案...我只是在寻找它以避免大量编码的麻烦...

【问题讨论】:

如果您使用的是哪个框架,可能会很高兴。 动态网页画廊的分页... 如果是用于网络画廊,那么问题与your previous one 有何不同? 我不明白。分页的大量编码问题到底是什么?如果要获得更多结果,不就是输出一个数字列表吗? 【参考方案1】:

看看这个:

Finally, the simple pagination class

See the demo here

【讨论】:

@Junaid Saeed:也有关于如何实现的解释。至于代码示例,它也在那里,或者您可以在这里下载:catchmyfame.com/paginator/…【参考方案2】:

可以试试Pear Data Pager 或Zend_Paginator。

【讨论】:

以上是关于PHP+mysql分页的问题,我用了php万能分页的代码,但是不好用,请帮我看看是啥问题?说19行不对,请指教的主要内容,如果未能解决你的问题,请参考以下文章

用PHP+MySQL来做分页的演示

php分页例子实现读取mysql数据分页显示

简单的 PHP 分页脚本 [关闭]

PHP入门(16) 使用mysqli实现简单的分页

任何用于分页的 PHP 库/类 [重复]

php 新闻内容显示页面分页怎么写?