2012-02-22 99 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 
} 
相關問題