请高手帮忙解决大众难题:将查询出来的记录进行分页浏览时,翻到下一页总出现:查询语句为空??? 用limit语句不就可以解决分页吗??可能我没弄明白你的意思 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 limit我知道,它可以实现普通的浏览分页[我已经实现了],我说的主要是查询分页。不知道你是怎样将查询出来的数据实现分页浏览的? 看来你是把条件post或者get过去以后search1.php拼凑得你可以在一个页面里面处理 其中加上hidden类型表单控件 程序判断一下 如果设置了那个值就处理搜索得代码另外,你传递得东西完全可以用session来暂时保存啊 楼上说的SESSION就可以实现了..只是不知道session有无最大值限制...如果你只是考虑页面表现的内容不能过多,而不考虑实际下载数据的多少...可以用JS来控制输出..保存变量到JS语句里...GET得的PAGE值+JS判断所要输出的变量..不过这样好象用不了POST来传递查询语句....必须在search1.php里放查询语句(可以结合GET)... 把那些查询提交的变量通过url传递到下一个页面就可以了,大家都是这样实现的,只不过这样需要在接受search数据时同时要接受get和post的数据(如果register_globals=on)就不用考虑这个问题了 楼主的问题是没有将sql语句传到下一个页,系统当然会提示查询语句为空了.方法是将sql语句,或者至少是sql语句的条件部分使用session的方法来传到下一页session里面可以放许多东西,楼主尽可放心把条件往里面存. 查询条件 有关分页的信息 加在隐藏的表单中传入下个个处理页面,在SQL中用limit offset 控制筛选数据的记录 用Session可能不太好吧,比较费系统资源。可以用Hidden的Form,或者用$_GET[],比如:search.php?key=aspbiz&page=10 传递查询参数就可以啦!用url方式或者表单隐藏变量都可以! 谢谢诸位的建议,但用URL显然很不现实,因为我要实现的是多条件组合的复杂查询,那样URL不知道要写多复杂,而用隐藏表单的问题是:在page=1时,表单数据还有,而一旦翻到page=2或以后时,表单数据就又为空了。所以我决定试一下session。[其实这个问题在ASP中根本就不是个问题,几个Application就解决了,可令人哭笑不得的是PHP中居然没有对应的函数。] 刚才试了一下session,简单举例啊,假如search页面传来的查询信息是3个input: text1[比如其值是 bookid ]、text2[别其值是 > ]、text3[比如其值是 5 ] 与之相对应,我在search1页面中这样接收: session_start(); $txt1 = trim($_POST["text1"]); $txt2 = trim($_POST["text2"]); $txt3 = trim($_POST["text3"]); session_register("txt1"); session_register("txt2"); session_register("txt3"); ...... [中间的程序省略了] 查询语句如下: $sql="SELECT * FROM book WHERE ".$txt1." ".$txt2." ".$txt3." LIMIT ".($page-1)*$page_size." , ".$page_size; 结果还是第一页可以显示,一翻到"下一页"就不行,提示:查询语句为空! 是不是我这样用session还有问题啊??? 哪位大侠能指点指点啊?? 用URL怎么会复杂呢?你有几个条件就传递几个变量不就行了嘛?在页面开头用isset()先判断,如果变量有值就获取变量值,很简单的。只不过看到url有一大串变量不怎么爽而已!呵呵 是不是我这样用session还有问题啊??? 哪位大侠能指点指点啊??------------楼主使用了老版的session,你是看书写的吧?应该看手册才对以前写的例子,见笑.:),楼主可参考一下关于php中session的一点小心得 最近在学习写php,被里面的session给缠住了,在书上非常简单的session例子,居然在我的电脑上一直没办法运行出来。在请教了各位高手,再找了许多资料后,终于有了一个自认为正确的答案,现整理如下。 在php 4.1.0 之前的session大概是使用$HTTP_SERVER_VARS这个命令在进行操作的(只是从网上找到的资料没有经过验证),但一般现在装的php,都是在4.2、4.3的样子在下的系统里就是php-4.3.4-win32 很显然,书上的东西已经不能支持最新的php了。 经过试验,我解决的方法如下1、将session.save_path的路径改为session.save_path = c:\php\tmp同时在c:\php下建立tmp目录。2、另,session.cookie_path 的路径千万不能改还是要保持原来的样子session.cookie_path = / 网上有的文章说要把这改成和session.save_path一样的路径,就这点把我害了。 改完后重新起动服务器。运行两个文件。test.php<?session_start();$_SESSION["mytest"]="give my love.";echo "<a href=test2.php>go</a>";?>test2.php<?session_start();echo $_SESSION["mytest"];?> 结果可以让人满意。PS:注意点1、session_star()前面不能有任何字符输出,包括前面不能有空格。2、$_SESSION一定要大写,不能用小写。 把表单的method 改为get我前两天也遇到这个问题后来想起来 get 可以在 url 里面传值 与之相对应,我在search1页面中这样接收: session_start(); $txt1 = trim($_POST["text1"]); $txt2 = trim($_POST["text2"]); $txt3 = trim($_POST["text3"]); ...... [中间的程序省略了] 构造或取回查询语句 if(! isset($_SESSION['sql'])) $_SESSION['sql'] = "SELECT * FROM book WHERE ".$txt1." ".$txt2." ".$txt3." LIMIT "; $sql = $_SESSION['sql'].($page-1)*$page_size." , ".$page_size; php连接mysql数据库问题 ThinkPHP连接sql sever问题 define('abc',include('abcd.php')); 请问类似这样的定义是什么意思,用意何在?? php 如何获得当前页面地址 怎么出现数字循环出数字001,002……到200呢? 怎么获取某个表中当前id的最大值? 请推荐几个php程序的漏洞检测程序? php的几个入门问题 PHP如何实现网上对话 这里的@是什么用意啊 使用php的mail()函数一定要在web服务器上装mail服务器嘛? 取option内容问题,或者其他方法
你可以在一个页面里面处理 其中加上hidden类型表单控件 程序判断一下 如果设置了那个值就处理搜索得代码
另外,你传递得东西完全可以用session来暂时保存啊
GET得的PAGE值+JS判断所要输出的变量..不过这样好象用不了POST来传递查询语句....必须在search1.php里放查询语句(可以结合GET)...
下一页session里面可以放许多东西,楼主尽可放心把条件往里面存.
用Session可能不太好吧,比较费系统资源。可以用Hidden的Form,或者用$_GET[],比如:search.php?key=aspbiz&page=10
text1[比如其值是 bookid ]、text2[别其值是 > ]、text3[比如其值是 5 ]
与之相对应,我在search1页面中这样接收:
session_start();
$txt1 = trim($_POST["text1"]);
$txt2 = trim($_POST["text2"]);
$txt3 = trim($_POST["text3"]);
session_register("txt1");
session_register("txt2");
session_register("txt3");
...... [中间的程序省略了] 查询语句如下:
$sql="SELECT * FROM book WHERE ".$txt1." ".$txt2." ".$txt3." LIMIT ".($page-1)*$page_size." , ".$page_size; 结果还是第一页可以显示,一翻到"下一页"就不行,提示:查询语句为空! 是不是我这样用session还有问题啊???
哪位大侠能指点指点啊??
在页面开头用isset()先判断,如果变量有值就获取变量值,很简单的。只不过看到url有一大串变量不怎么爽而已!呵呵
哪位大侠能指点指点啊??------------楼主使用了老版的session,你是看书写的吧?应该看手册才对以前写的例子,见笑.:),楼主可参考一下关于php中session的一点小心得 最近在学习写php,被里面的session给缠住了,在书上非常
简单的session例子,居然在我的电脑上一直没办法运行出来。
在请教了各位高手,再找了许多资料后,终于有了一个自认为正
确的答案,现整理如下。
在php 4.1.0 之前的session大概是使用$HTTP_SERVER_VARS
这个命令在进行操作的(只是从网上找到的资料没有经过验证),
但一般现在装的php,都是在4.2、4.3的样子在下的系统里就是
php-4.3.4-win32
很显然,书上的东西已经不能支持最新的php了。 经过试验,我解决的方法如下
1、将session.save_path的路径改为session.save_path = c:\php\tmp
同时在c:\php下建立tmp目录。2、另,session.cookie_path 的路径千万不能改还是要保持原来的样子
session.cookie_path = /
网上有的文章说要把这改成和session.save_path一样的路径,就这
点把我害了。 改完后重新起动服务器。运行两个文件。test.php<?
session_start();
$_SESSION["mytest"]="give my love.";
echo "<a href=test2.php>go</a>";
?>test2.php<?
session_start();
echo $_SESSION["mytest"];
?> 结果可以让人满意。PS:注意点
1、session_star()前面不能有任何字符输出,包括前面不能有空格。
2、$_SESSION一定要大写,不能用小写。
后来想起来 get 可以在 url 里面传值
session_start();
$txt1 = trim($_POST["text1"]);
$txt2 = trim($_POST["text2"]);
$txt3 = trim($_POST["text3"]);
...... [中间的程序省略了] 构造或取回查询语句
if(! isset($_SESSION['sql']))
$_SESSION['sql'] = "SELECT * FROM book WHERE ".$txt1." ".$txt2." ".$txt3." LIMIT ";
$sql = $_SESSION['sql'].($page-1)*$page_size." , ".$page_size;