作者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
推 camille168:我知道有PHP板,我的問題依然存在,不知道是那錯了 01/25 09:11
→ starjou:error message? 01/25 09:31
→ starjou:也許是 sql string 有錯,把 mysql_error 也秀出來看看 01/25 09:31
→ camille168:沒有錯啦!只是查詢時資料不會被找出來 01/25 10:32
推 maplenote:那可能就是找不到資料而已.. 01/25 11:25
→ maplenote:如果你有裝phpMyAdmin 在上面有SQL選項 01/25 11:25
→ maplenote:把印出的SQL string 貼上去執行看看 語法有錯它也會提示 01/25 11:26
→ starjou:沒有找到資料又沒有錯,那就是沒有資料囉 01/25 18:50