2013-03-09 15 views
0

我有php頁面,它取用於用戶的startdate,enddate,hotelname,city,price和type的值。 現在我需要檢查我的數據庫中是否只有用戶輸入的值。那可能嗎?對於任何留空的條目,不會應用相應的條件(例如,如果城市保持空白,則考慮所有城市)。 如果用戶只輸入酒店名稱,那麼我需要從酒店選擇* hname = hotelname。如何從數據庫中選擇在php中輸入的特定字段的條目

如果我繼續檢查所有可能的條件集,那麼它將會像63個組合一樣長!那麼有什麼出路嗎?請幫忙!謝謝。

+0

我是否正確理解您正在構建某種搜索表單,以允許用戶使用不同的搜索條件搜索數據庫中的條目?你不知道如何進行數據庫查詢,它包含了表單中所有非空字段? – 2013-03-09 16:15:09

+0

你有什麼嘗試?你目前的代碼是什麼?你究竟在哪裏**卡住了? – Jocelyn 2013-03-09 16:15:59

+0

是的。用戶可以使用任意數量的搜索條件進行搜索,使用戶可以使用一個搜索條件或全部6個搜索條件進行更加清晰的搜索!我如何檢查用戶輸入了多少搜索條件並通過我的數據庫搜索它們? – 2013-03-09 16:22:37

回答

0

你應該編寫一個方法,循環輸入變量並尋找有效的列名,而不是單獨處理每個輸入。然後確保你在SQL(mysqli,PDO)中使用了準備好的語句。

要檢查是否有特定的輸入乏,如果每個領域需要特別注意或單獨的數據庫表,你應該執行

if (isset($_POST['var']) && !empty($_POST['var']))

,那麼你很可能需要單獨處理每個字段。

它最終取決於您的需求。但根據我的經驗,總是有一種方法可以用語法進行。

0

在代碼中構建查詢時,只包含具有值的項目。

您是動態構建您的查詢不是嗎?

+0

不,查詢是靜態的,只有值是動態輸入的! – 2013-03-09 16:29:06

+0

那是你的問題。沒有人在他們的正確思想中會對動態構建的查詢以外的任何內容進行此操作。你爲什麼使用靜態的? – 2013-03-09 16:31:28

+0

即時通訊對不起,我不知道如何建立動態查詢,因爲即時通訊新的PHP。你可以請指導我從哪裏可以學習建設動態查詢?或者如果你可以發佈任何示例動態查詢? – 2013-03-09 16:34:07

相關問題