作者strife00 (strifecloud)
看板PHP
标题[请益] 关於PhP与MySQL
时间Wed Apr 2 23:34:36 2014
小弟我是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://webptt.com/cn.aspx?n=bbs/PHP/M.1396452878.A.DDB.html
1F:→ danny8376:事先检查值是不是空的啊 04/02 23:45
2F:→ danny8376:遇到空的就那段OR不加进去不就行了 04/02 23:46
3F:→ danny8376:然後你的写法... 注意下SQL Injection 04/02 23:46
4F:→ cf1064:判断不是空的,sql字串相加 04/03 00:12
5F:→ terrybob:isset($_POST['area'])?$_POST['area']:''; 04/03 01:51
6F:→ strife00:请问在判断是空的就不执行的语法是isset对吗?因为是新 04/03 11:07
7F:→ strife00:是新手不太知道具体的语法怎麽写,感谢 04/03 12:37
10F:→ alog:LIKE 的 %% 运算就算你不给 空白 用 % 也是可行 04/04 19:31
11F:→ alog:另外_ 也行 04/04 19:32
12F:→ alog:另外字串为空这件事情 请使用 mb_strlen or strlen 04/04 19:34
13F:→ alog:empty 只要填 '0' 进去一样算 true 04/04 19:35
14F:→ strife00:解决了!感谢各位大大 04/06 23:41