2012-11-01 24 views
0

我正在處理動態頁面。情景是這樣的。傳遞選擇值並從mysql中檢索數據

  • Page 1包含一個下拉菜單供我選擇。
  • 選定的菜單值將傳遞到下一頁的URL。
  • 然後這個值將被頁面檢索出來比較和過濾MYSQL表格的字段名稱。
  • 該表由4個主要類別組成,這是用戶在頁面1中選擇的選項。
  • 對於每個類別,將存儲30個字。
  • 當用戶搜索某個單詞時,它應該通過顯示下拉菜單並檢查該值是否與表格的字段ID值相同並且該單詞現在用於縮小隻搜索這個領域而不是全部4個類別。

如何做到這一點?我正在爲此工作幾個星期,但我無法解決它。

$ret1 = "SELECT * FROM $db_tb_name WHERE MATCH 
('categoryid'='.$selectvalueid.') AND AGAINST ('%$str%' IN BOOLEAN MODE)"; 

和我有這段代碼,它有錯誤的語法。

請有人幫我舉一些例子。

+0

請特別說明第5點... 30個字是否存儲?哪裏?你可以在表格中說:)但這也是不可理解的。試着澄清它吧 – Sami

回答

0

所以讓我明白這一點:在您發出請求時,您同時擁有一個類別ID $selectvalueid(由下拉菜單產生)和搜索字詞$str(由自由文本輸入產生?)。你想那些行,其中你的表categoryid從腳本中的$selectvalueid字符串完全匹配,而一些列(用什麼名字?)包含$str值。目前爲止是否正確?

如果是,您的查詢可能是這樣的:

SELECT * FROM $db_tb_name 
WHERE categoryid = '$selectvalueid' 
    AND wordcolumn LIKE '%$str%' 

注意,簡單地粘貼用戶輸入變量到SQL查詢最有可能會讓你的網站容易受到SQL注入式攻擊。因此,更好的方法是使用帶佔位符的查詢,並使用預準備語句在執行查詢時以安全方式填充這些佔位符。如何做到這一點取決於應用程序語言。

+0

嗨MvG感謝您的反饋意見。編輯完成後,我沒有任何語法錯誤,但沒有顯示任何結果。 – vaani

相關問題