相同页数据库结果

时间:2012-02-22 22:23:34

标签: php mysql html

相同页面结果:(xmain.php)

// FORM(工作正常)

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

// QUERY(工作正常)

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

//这是我的15行查询的最后两行 - 我已经跳过其余部分以节省空间:

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

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

好的,虽然所有代码都正常工作(表单提交变量,数据库结果正确等等,但有两个唠叨问题:

1 - 首次加载页面时会回显所有数据库结果。页面从上到下都是令人耳目一新的,没有中途停留 - 我希望在第一页到达时不显示任何记录。 2.此外,由于此页面的从上到下的性质,我的选项选项将在表单提交时重置。我想保留选择,直到RESET按钮 - 单击我在页面上的目的。

我意识到这种形式总是让自己清醒,造成了上述问题。

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

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

2 个答案:

答案 0 :(得分:0)

  1. 仅在实际发布内容时显示内容,因此请使用if(isset($_POST['doSearch']){..或其他内容。
  2. 回显值<input .... value="'.(isset($_POST['thisinputname'])?htmlspecialchars($_POST['thisinputname']:'')">
  3. 在更复杂的表单上,会话可以很方便,而不需要更简单的表单/表单总是得到帖子。顺便说一句,我更喜欢使用GET来列出数据,这样可以更容易地共享/链接。用于更改的POST,用于检索的GET(以及用于真实REST的一些其他方法)。

答案 1 :(得分:0)

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

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

如果从数据库获取数据,也可以使用GET。将数据放入数据库时​​进行POST。我想其原因超出了命名惯例,但它仍然是一个很好的提醒:GET for getting和POST for posting / puts。

更新

对不起,我没想到这一次。将sql查询放在if statement中。还要在if statement内回显结果。

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

if ($sql){
  //echo the results
}