Re: [請益] 多條件查詢

看板PHP作者 (台灣獨立公投入聯)時間18年前 (2008/01/25 12:33), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《camille168 (凱凱)》之銘言: : : 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); : : ^ ^ : : 大概就是如此... : 我改了 : $query_RecID = sprintf : ("SELECT * FROM `01_id` : WHERE '%s' like '%s' ORDER BY i_date DESC", $field,$colname_RecID); : 這樣 : 然後打了 : 你說的印出query_recid : 查詢工號(id) : 他印出select * from '01_id' where 'id' like 'id' order by i_date DESC : 查型號(model)的話 : 他會印出select * from '01_id' where 'model' like 'model' order by i_date DESC 所以我才說你文章根本沒念清楚 你即然要作 like 的查詢比對 你根本沒下模糊區域當然找不到東西啊~"~ select * from '01_id' where 'model' like 'model' order by i_date DESC (╳) select * from '01_id' where 'model' like '%model%' order by i_date DESC (○) 只是你查東西的構想還真怪... 通常會用like,我以為只有查文章某一段內容才會用的到呢.. 在下習慣like的用法如下 $sql="select id,title,date,time from library where concat(title,content) like '%".$keywords."%' order by id desc"; 用concat組合某些欄段拿來作 like 滿實用的, 可作簡單的全文查詢機 你把field用id來代替,又沒下模糊區(%,?)不如用 = 就好了,速度還比較快些.. like 可以在你關鍵字前後 加上 % 或 ? , 就看你需求怎定了 -- 3WA訓練家的工作室 宗旨:人生就是要爽 個人佈弱格 網址:http://3wa.myvnc.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.117.82 ※ 編輯: shadowjohn 來自: 123.240.117.82 (01/25 12:35)

01/25 13:41, , 1F
謝謝S大的指導,我總算用出來了
01/25 13:41, 1F

01/25 13:42, , 2F
不好意思,剛學PHP,不是很懂,請多見諒
01/25 13:42, 2F
文章代碼(AID): #17cMQgUv (PHP)
討論串 (同標題文章)
文章代碼(AID): #17cMQgUv (PHP)