Re: [請益] 多條件查詢

看板PHP作者 (台灣獨立公投入聯)時間16年前 (2008/01/23 17:26), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串2/4 (看更多)
※ 引述《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
echo $sql;
01/25 11:10, 3F

01/25 11:11, , 4F
把你的 $query_RecID 執行結果印出來看看吧
01/25 11:11, 4F
文章代碼(AID): #17bmX7eo (PHP)
討論串 (同標題文章)
文章代碼(AID): #17bmX7eo (PHP)