2012-02-22 100 views
0

SAME页结果:(xmain.php)同一数据库查询结果

// FORM(工作好)

<form name="search" action="xmain.php" method="post"> 
code,code,code, 

//查询(工作好)

code,code,code,  
    <input type="submit" name="doSearch" value="doSearch"> 

//这些是我15行查询的最后2行 - 我省略了其余部分以节省空间:

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM $tableName $qryWhere LIMIT $start, $limit;"; 
$result = mysql_query($sql); 

//表查询结果这里.....

OK,尽管所有的代码工作正常(形式提交的变量,数据库结果是正确的,等等,有2个困扰的问题:

1 - 所有数据库结果都会在首次​​加载页面时得到回应。该页面从上到下清爽无间 - 我希望在第一页到达时显示NO RECORDS。 2.此外,由于此页面的自上而下性质,我的选项选项将在表单提交后重置。我想保持选择,直到我点击页面上的RESET按钮 - 。

我意识到,通过始终刷新本身的形式,正在造成上述问题。

任何建议将不胜感激! - 看到这里的工作样本:

http://www.symbioticmusicpublishing.com/database3/xmain.php

回答

0
  1. 只显示一些东西时,实际上贴了,所以用if(isset($_POST['doSearch']){..或东西包围。
  2. 呼应值<input .... value="'.(isset($_POST['thisinputname'])?htmlspecialchars($_POST['thisinputname']:'')">

在更复杂的形式的会话可能是得心应手,不需要简单的人/形式总是获得这个职位虽然。顺便说一句,我更喜欢使用GET来列出数据,使分享/链接更容易。用于更改的POST,用于检索的GET(以及用于真正REST的一些其他方法)。

+0

如果搜索按钮被点击,执行查询(否则)会发生什么呢?有没有办法让回顶部?我很困惑,由于我缺乏知识。谢谢 – 4world2c 2012-02-22 22:34:17

+0

实现#1之后,我仍然可以在数据库中的所有记录。我不明白#2 - 谢谢 – 4world2c 2012-02-22 22:47:03

+0

然后你没有实现它的权利。如果有新的访问者,不应该有一个'$ _ POST [“doSearch”]'尚未....不能说你是不实际的代码做错了什么。 – Wrikken 2012-02-22 23:06:23

0

回复像Wrikken所建议的在if statement内检索到的值。检查您的表单提交按钮是否被实际点击过,然后只能回显结果。

如果您不熟悉语法,请查看三元运算符。 http://www.php.net/manual/en/language.operators.comparison.php

如果您从数据库中获取数据,也可以使用GET。并且在将数据放入数据库时​​进行POST。我想为什么超出命名约定,但仍然是一个很好的提醒:获取和POST张贴/放置。

UPDATE

对不起,我没有想到这一个通过。把sql查询放入if statement。在if statement内也放回结果。

if (isset[$_POST['doSearch']]){ 
    //make the query 
} 

if ($sql){ 
    //echo the results 
} 
相关问题