0

我的帖子

个人中心

设置

  发新话题
本人运维屌丝一名,从没学过PHP,最近自己写了一个资产管理网页。目前遇到一个问题:PHP搜索不能实现分页显示,在主页点击搜索能跳转到search.php并能显示结果,但是如果搜索结果超过1页就不行了(第二页会显示全部清单),哪位大神能指点一下?不胜感激。


index.php search功能代码。
<form method="get" action="search.php" name="search">
<input  name="search" class="form-control" autocomplete="off" placeholder="Search" maxlength="60" />
<input type="submit" class="btn" value="搜索" onclick=window.open(http://localhost/search.php/)>
</form>



search.php分页代码。
<?php
    include_once('conn.php');
    mysql_query("set names 'utf8'");
    mysql_select_db('list');
    $search = $_GET['search'];
    $sql = "SELECT * FROM `server` WHERE CONCAT(hostname,ip) like '%$search%';
    $result = mysql_query($sql,$conn) or die("Error");
    $data_nums = mysql_num_rows($result);
    $per = 30;
    $pages = ceil($data_nums/$per);
    if (!isset($_GET["page"])){
        $page=1;
    } else {
        $page = intval($_GET["page"]);
    }
    $start = ($page-1)*$per;
    $result = mysql_query($sql.' LIMIT '.$start.', '.$per,$conn) or die("Error");
?>




<?php
$num = ($page -1) * $per;
while ($row = mysql_fetch_array ($result))
{
$num ++;
    ?>



<?php

    echo '总 '.$data_nums.' 笔-在 '.$page.' 页-共 '.$pages.' 页';
    echo "<br /><a href=?page=1>首页</a> ";
    echo "第 ";
    for( $i=1 ; $i<=$pages ; $i++ ) {
        if ( $page-3 < $i && $i < $page+3 ) {
            echo "<a href=?page=".$i.">".$i."</a> ";
        }
    }
    echo " 页 <a href=?page=".$pages.">尾页</a><br /><br />";
?>



另外吐槽一下验证码功能,打了半天验证码错误竟然提示跳转到主页,不返回当前页面,又要重打一次,记得以前不是这样的啊啊啊啊啊

本帖最近评分记录
  • 七彩极 无忧币 +25 欢迎常来逛逛~! 2017-10-10 22:28



本帖最后由 七彩极 于 2017-11-12 17:40 编辑
帮你召唤大神 @七彩极



问题好像出在这一句上:
$sql = "SELECT * FROM `server` WHERE CONCAT(hostname,ip) like '%$search%';

————————————————

WHERE CONCAT(hostname,ip) like '%$search%',查询条件出了问题吧。

楼主把执行前的SQL语句打印出来就知道最终问题所在了。
而且,这句末尾还少了个双引号。。。

另外,网上有很多封装好的分页类,楼主可以先学习下他们如何写的哈。




本帖最后由 七彩极 于 2017-10-9 22:45 编辑
宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
引用:
原帖由 七彩极 于 2017-10-9 20:48 发表
问题好像出在这一句上:
$sql = "SELECT * FROM `server` WHERE CONCAT(hostname,ip) like '%$search%';

————————————————

WHERE CONCAT(hostname,ip) like '%$search%',查询条件出了问题吧。

楼主 ...
不是sql语句问题哦,sql语句只是基于hostname和ip的模糊查询,而且页面能显示查询结果,图一是基于ip的模糊查询显示280条记录。
但是点击第二页就显示全部清单了如图二。
我看楼主也是自学php的,要不有时间自己测试下search分页。0.0
网上关于查询分页的基本找不到。。



行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
引用:
原帖由 七彩极 于 2017-10-9 20:48 发表
问题好像出在这一句上:
$sql = "SELECT * FROM `server` WHERE CONCAT(hostname,ip) like '%$search%';

————————————————

WHERE CONCAT(hostname,ip) like '%$search%',查询条件出了问题吧。

楼主 ...
为什么图片不能上传,19大?日。

总 98 笔-在 1 页-共 4 页   基于IP的模糊查询
总 757 笔-在 2 页-共 26 页   点击第二页显示全部内容



行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
引用:
原帖由 z263771768 于 2017-10-10 10:08 发表

不是sql语句问题哦,sql语句只是基于hostname和ip的模糊查询,而且页面能显示查询结果,图一是基于ip的模糊查询显示280条记录。
但是点击第二页就显示全部清单了如图二。
我看楼主也是自学php的,要不有时间自己测试下searc ...
好吧,我用的where后面都是跟的字段,你用的concat我以为有问题呢。。

你把执行查询的sql语句打印出来看看,才能找到问题呀。。

稍后我找一两个合适的分页类给你参考哈。。现在上班,临时回复下~~



宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
引用:
原帖由 Shell_2015 于 2017-10-9 16:20 发表
帮你召唤大神 @七彩极
谢谢你,论坛不能上传图片,十九大管制?



行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
引用:
原帖由 z263771768 于 2017-10-10 10:21 发表

谢谢你,论坛不能上传图片,十九大管制?
没有啊,,可以上传。
你的图片格式和大小是?



引用:
原帖由 Shell_2015 于 2017-10-10 10:57 发表

没有啊,,可以上传。
你的图片格式和大小是?
jpg  截图的  几KB,那是网络管制?我走的是线路是从台湾的。



行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
引用:
原帖由 z263771768 于 2017-10-10 11:08 发表

jpg  截图的  几KB,那是网络管制?我走的是线路是从台湾的。
额。。。。上传时候提示什么?
或者换个网络试试。



来,我们一个一个问题地解决哈。。我按照楼主的代码,在本地测试,点击第二页,出现了一个参数问题,你的超链接里面,没有了search了。

所以,你得把它补充上去。
$search = isset($_GET['search']) ? $_GET['search'] : '';

至于,楼主为什么没有出现错误提示,应该思考下这个问题哈!

URL:
http://localhost/php/base_study/mysql/51test.php?page=2
Notice: Undefined index: search in D:\wamp\www\php\base_study\mysql\51test.php on line 5

本帖最近评分记录
  • Shell_2015 无忧币 +5 热心广援 2017-10-10 11:54



本帖最后由 七彩极 于 2017-10-10 11:29 编辑
宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
引用:
原帖由 七彩极 于 2017-10-10 11:25 发表
来,我们一个一个问题地解决哈。。我按照楼主的代码,在本地测试,点击第二页,出现了一个参数问题,你的超链接里面,没有了search了。

所以,你得把它补充上去。
$search = isset($_GET['search']) ? $_GET['search'] : '';

至 ...
我刚想说应该是第二页没有带到关键字。
http://codeigniter.org.cn/forums/thread-12117-1-1.html

另外$search = isset($_GET['search']) ? $_GET['search'] : '';这个是添加在哪个位置?



行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
引用:
原帖由 Shell_2015 于 2017-10-10 11:13 发表

额。。。。上传时候提示什么?
或者换个网络试试。
难道又能上传了?



行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
引用:
原帖由 Shell_2015 于 2017-10-10 11:13 发表

额。。。。上传时候提示什么?
或者换个网络试试。
服务器内部错误

此网站可能遇到技术问题, 无法执行您的请求.
请稍后重试.

错误码 500 (Internal Server Error)


报错如上。



行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
引用:
原帖由 z263771768 于 2017-10-10 11:47 发表

服务器内部错误

此网站可能遇到技术问题, 无法执行您的请求.
请稍后重试.

错误码 500 (Internal Server Error)


报错如上。
经确认,后台上传功能有点问题,正在处理中,请晚点再试试。



引用:
原帖由 z263771768 于 2017-10-10 11:43 发表

我刚想说应该是第二页没有带到关键字。
http://codeigniter.org.cn/forums/thread-12117-1-1.html

另外$search = isset($_GET['search']) ? $_GET['search'] : '';这个是添加在哪个位置? ...
直接把你的 $search = $_GET['search']; 替换掉即可。。

但是,楼主,你这样写的赤裸裸的查询语句,是有漏洞的。。。还是用别人封装好的类吧,安全系数高些



宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
引用:
原帖由 七彩极 于 2017-10-10 12:12 发表

直接把你的 $search = $_GET['search']; 替换掉即可。。

但是,楼主,你这样写的赤裸裸的查询语句,是有漏洞的。。。还是用别人封装好的类吧,安全系数高些 ...
哈,还是不行。版主search能分页了?第二页还是显示全部内容,我觉得还是如下这个问题:
http://codeigniter.org.cn/forums/thread-12117-1-1.html



行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
引用:
原帖由 z263771768 于 2017-10-10 13:01 发表

哈,还是不行。版主search能分页了?第二页还是显示全部内容,我觉得还是如下这个问题:
http://codeigniter.org.cn/forums/thread-12117-1-1.html
对啊,我测试用你的代码,分页链接已经出来了,显示也正常。



宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
引用:
原帖由 七彩极 于 2017-10-10 14:30 发表

对啊,我测试用你的代码,分页链接已经出来了,显示也正常。
为什么我的不行 ????
第一页显示270笔资料     分页到第二页还是显示全部。
11111.jpg (384.97 KB)

2017-10-10 14:54

搜索第一页

11111.jpg

222222.jpg (391.76 KB)

2017-10-10 14:54

搜索第二页

222222.jpg




行路难,行路难,多歧路,今安在,乘风破浪会有时,直挂云帆济沧海!
反正我的就是正确显示了。。







宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
‹‹ 上一贴:【其他】死循环:看谁死得更惨!   |   下一贴:【教程经验】有关 PHP 和 js 浮点运算的坑 ... ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2017 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com