看板 PHP 關於我們 聯絡資訊
小弟我是PHP與MySQL的新手, 有個小問題想請益,程式碼如下(取片段) <form name="search" action="result.php" method="post"> <h1><p align="center"><b>Please Enter Keywords </b></p></h1> <p align="center"><b>請輸入關鍵字</b></p> <input name="input" type="text" width="1000" /><br> <input name="area" type="checkbox" value="台北">台北<br> <input name="type" type="hidden" value="xxxx" /><!-- 隱藏數值 --> <input name="ok" type="submit" value="檢索" /><input name="retype" type="reset" value="重設" /> </form> 我寫了一個簡單的Form,包含了text和checkbox如上 $sql_query =" SELECT * FROM vocabulary WHERE cChinese LIKE '%".$_POST["area"]."%' OR cChinese LIKE '%".$_POST["input"]."%' OR cEnglish LIKE '%".$_POST["input"]."%' OR cJapanese LIKE '%".$_POST["input"]."%'" ; 在吐值的語法如上,主要是用Like '% %' 的方式,在text中輸入關鍵字 來搜尋某些關鍵字的字串結果。 但用Like '% %'的方式,只要都不輸入任何東西,它就會將所有的資料庫的內容吐出來, 這會跟我checkbox想找的東西衝突。 比如我text不想輸入東西,只想用checkbox找特定的資料庫內容, 但是由於text中沒有輸入東西,因此它會自動將資料庫所有內容吐出來 就失去了我想找特定內容的意義了。 不知道有沒有什麼方法解決? 或是有沒有辦法解決用LIKE '% %'語法不輸入東西它就會吐出所有的值? 說明有點複雜,請大家多多包涵 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 43.244.28.73 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1396452878.A.DDB.html
danny8376:事先檢查值是不是空的啊 04/02 23:45
danny8376:遇到空的就那段OR不加進去不就行了 04/02 23:46
danny8376:然後你的寫法... 注意下SQL Injection 04/02 23:46
cf1064:判斷不是空的,sql字串相加 04/03 00:12
terrybob:isset($_POST['area'])?$_POST['area']:''; 04/03 01:51
strife00:請問在判斷是空的就不執行的語法是isset對嗎?因為是新 04/03 11:07
strife00:是新手不太知道具體的語法怎麼寫,感謝 04/03 12:37
alog:LIKE 的 %% 運算就算你不給 空白 用 % 也是可行 04/04 19:31
alog:另外_ 也行 04/04 19:32
alog:另外字串為空這件事情 請使用 mb_strlen or strlen 04/04 19:34
alog:empty 只要填 '0' 進去一樣算 true 04/04 19:35
strife00:解決了!感謝各位大大 04/06 23:41