Re: [請益] 多條件查詢
※ 引述《camille168 (凱凱)》之銘言:
: 我想要做一個查詢是選擇欄位然後輸入查詢值來查詢
: 也就是說,我在網頁上做了一個下拉式選單來選欄位
: (標籤=中文欄位名,值=mysql欄位名稱)
: 後面再做一個text來輸入值
: 選到那個欄位時輸入值就可以依那欄位來查我所輸入的值
: 我想要做的就是這種
: 現在有個問題就是
: 我在寫sql時where那裡應該怎麼寫會比較好?
: 我現在是把欄位名稱用變數來替代
: where '$field' like 'colname'
: 變數~colname 預設值:% 執行值:$_GET['field']
: 不過這樣沒辦法查詢說
: 按查詢的話就查不到任何資料
: 請問有那位大大可以替我解惑呢?
: 謝謝m大和s大的解說
: 我改了
: http://moon.nfu.edu.tw/~g241126/1.phps
if (isset($_GET['$field'])) {
$colname_RecID = (get_magic_quotes_gpc()) ? $_GET['$field'] : addslashes($_GET['$field']);
}
打開檔案一看就看到你的錯誤了...
$_GET['field'] ○
$_GET['$field'] ╳
$query_RecID = sprintf
("SELECT * FROM `01_id`
WHERE '%s' like '%s' ORDER BY i_date DESC", $field,$colname_RecID);
另外....
一般用SQL用 like指令
我習慣是 tablefield放前,查的字放後
比如
$name='羽山';
$sql="select id from data where name like '%".$name."%' ";
也就是說.. name like '%羽山%'
即可以查 名字中 有 羽山 二字的所有人名
比如 肥羽山秋人 或 胖羽山
當然你用sprintf也不是不行,只是你的%s會被你鍵入的field取代
變成應有的%就消失了
所以你應該要...
$query_RecID = sprintf
("SELECT * FROM `01_id`
WHERE '%s' like '%%s%' ORDER BY i_date DESC", $field,$colname_RecID);
^ ^
大概就是如此...
--
3WA訓練家的工作室
宗旨:人生就是要爽
個人佈弱格 網址:http://3wa.myvnc.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.56.213.47
※ 編輯: shadowjohn 來自: 61.56.213.47 (01/23 17:32)
推
01/24 02:21, , 1F
01/24 02:21, 1F
推
01/25 08:59, , 2F
01/25 08:59, 2F
→
01/25 11:10, , 3F
01/25 11:10, 3F
→
01/25 11:11, , 4F
01/25 11:11, 4F
討論串 (同標題文章)