作者starjou (周星星)
看板Web_Design
标题Re: [问题] 多条件查询(PHP+MYSQL)
时间Thu Jan 24 00:23:21 2008
※ 引述《camille168 (凯凯)》之铭言:
: 我想要做一个查询是选择栏位然後输入查询值来查询
: 也就是说,我在网页上做了一个下拉式选单来选栏位
: (标签=中文栏位名,值=mysql栏位名称)
: 後面再做一个text来输入值
: 选到那个栏位时输入值就可以依那栏位来查我所输入的值
: 我想要做的就是这种
: 现在有个问题就是
: 我在写sql时where那里应该怎麽写会比较好?
: 我现在是把栏位名称用变数来替代
: where '$field' like 'colname'
: 变数~colname 预设值:% 执行值:$_GET['field']
: 不过这样没办法查询说
: 按查询的话就查不到任何资料
: 请问有那位大大可以替我解惑呢?
如果资料内容不是完全跟 $_GET['field'] 的值一样,那就找不到资料,
要改成 'WHERE `'.$_GET['field_name'].'` LIKE "%'.$_GET['field'].'%" '
(假设你的下拉选单传回栏位名称为 $_GET['field_name']
另外 $_GET['field'] 其实应该是 field_value 吧?)
另外其实如果没有传回 $_GET['field'] 的话, where field_name LIKE '%'
其实是多余的
可以先用 empty 判断
$where_str = '';
if(!empty($_GET['field'])){
$where_str = 'WERE ....... ';
}
$query_str = 'SELECT * FROM table_name '.$where_str.' .....(ORDER, LIMIT ...)'
~~
有 php 板说...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.80.128.118
1F:推 camille168:我知道有PHP板,我的问题依然存在,不知道是那错了 01/25 09:11
2F:→ starjou:error message? 01/25 09:31
3F:→ starjou:也许是 sql string 有错,把 mysql_error 也秀出来看看 01/25 09:31
4F:→ camille168:没有错啦!只是查询时资料不会被找出来 01/25 10:32
5F:推 maplenote:那可能就是找不到资料而已.. 01/25 11:25
6F:→ maplenote:如果你有装phpMyAdmin 在上面有SQL选项 01/25 11:25
7F:→ maplenote:把印出的SQL string 贴上去执行看看 语法有错它也会提示 01/25 11:26
8F:→ starjou:没有找到资料又没有错,那就是没有资料罗 01/25 18:50