其实功底挺差的^_^,接触php和数据库没多久,但是公司却要我独立做东西了. 现在我认为关键是查询的问题. 程序的前部分我实现了输入关键词查询的功能, 后来加上了分页的程序,分页里面又要用到前面查询的结果, 这2者之间的对接我处理得不好, 分页里面的$rs=mysql_query("select count(*) from football",$link); 和 $rs=mysql_query("select * from football order by id desc limit $offset,$pagesize",$link); 查询所有数据其实并不是我所要的,我要的是查询部分符合搜索关键词的数据出来并分页. 但是却不会写.limit也是第一次用.如果哪位高手有空就希望能够指点一下,我好快点完成分页这个功能,已经花快2天在这里,也一直被催,郁闷到死.
回复:wisword 第2点是没有问题的了 因为可以分到几页了.但现在最重要就是第3点,这个真正用来查询结果的SQL:$query怎么写?现在改写成这样:$rs=mysql_query($query."limit $offset,$pagesize"); $query就是我程序前部分的查询搜索关键词用的查询语句,我认为是没错的了,因为都可以实现输入关键词搜索了. 我就是想把前面查询的结果分页.可是现在又出错了. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\PC_webserver\phproot\mine\searchfy.php on line 120这是120行的代码: if ($myrow = mysql_fetch_array($rs))
$rs=mysql_query("select * from football order by id desc limit $offset,$pagesize",$link); 这里面连查询条件都没有,肯定就不会是你想要的了,你可以这样写 $rs=mysql_query("select * from football (WHERE 一系列的查询条件, 注意把括号去掉) order by id desc limit $offset,$pagesize",$link); 如果有查询条件,记住,你查找的总页数也应该加上查询条件
现在我认为关键是查询的问题.
程序的前部分我实现了输入关键词查询的功能,
后来加上了分页的程序,分页里面又要用到前面查询的结果,
这2者之间的对接我处理得不好,
分页里面的$rs=mysql_query("select count(*) from football",$link); 和
$rs=mysql_query("select * from football order by id desc limit $offset,$pagesize",$link); 查询所有数据其实并不是我所要的,我要的是查询部分符合搜索关键词的数据出来并分页.
但是却不会写.limit也是第一次用.如果哪位高手有空就希望能够指点一下,我好快点完成分页这个功能,已经花快2天在这里,也一直被催,郁闷到死.
2.查找总记录数(供分页用)的SQL语句:把$query中select和from之间的东西替换成count(*)
3.真正用来查询结果的SQL:在$query后面加上" limit (当前页数-1)*每页显示记录数,每页显示记录数 "
$query就是我程序前部分的查询搜索关键词用的查询语句,我认为是没错的了,因为都可以实现输入关键词搜索了.
我就是想把前面查询的结果分页.可是现在又出错了.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\PC_webserver\phproot\mine\searchfy.php on line 120这是120行的代码: if ($myrow = mysql_fetch_array($rs))
在 mysql_query 之前把 $query 给输出来 看看什么样子给个我写的分页的 仅供参考吧$lngPage = intval($_GET['page']);
$lngPageSize = 10;$strCountSQL = " Select Count(Id) From tablename "
$strSQL = " Select ..... ";
$CountResult = mysql_query($strCountSQL) or die(mysql_error());
$CountRow = mysql_fetch_array($CountResult);
mysql_free_result($CountResult);
$lngRecCount = $CountRow[0];$lngAllPage = ceil($lngRecCount / $lngPageSize);
if($lngPage<=0){
$lngCurrentPage=1;
}elseif($lngPage>=$lngAllPage){
$lngCurrentPage=$lngAllPage;
}else{
$lngCurrentPage=$lngPage;
}$lngFromRecord = ($lngCurrentPage-1)*$lngPageSize;
$strSQL = " Select ..... From tablename Order By AddTime Desc Limit $lngFromRecord,$lngPageSize"; $Result = mysql_query($strSQL) or die(mysql_error());
$lngI = 1 ;
while($Row = mysql_fetch_array($Result)){
$strUserName = $Row['AdminName'];
$strContent = $Row['AdminAction'];
$strIp = $Row['AddIp'];
$timeEnter = $Row['AddTime'];
echo "<tr>";
echo "<td bgcolor=#EBF4FA>$strUserName</td>";
echo "<td bgcolor=#EBF4FA>$strContent</td>";
echo "<td bgcolor=#EBF4FA>$strIp</td>";
echo "<td bgcolor=#EBF4FA>$timeEnter</td>";
echo "</tr>";
}//分页函数.....
这里面连查询条件都没有,肯定就不会是你想要的了,你可以这样写
$rs=mysql_query("select * from football (WHERE 一系列的查询条件, 注意把括号去掉) order by id desc limit $offset,$pagesize",$link);
如果有查询条件,记住,你查找的总页数也应该加上查询条件