필드에서 값을 찾는게 아니라 테이블에서 필드를 찾는겁니다.
예를들어
g5_write_free 라는 테이블에
num
subject
wr_name
wr_time
wr_date
save
point
...
..
wr_1
wr_2
...
...
wr_30
등이 대충? 있는데요
여기서 필드가 wr_ 로 시작되는 것만 뽑아오는거랍니다.
이게 가능한가요?
가능하면 어떤 방법이 있는지요..
|
답변 4개 / 댓글 2개
채택된 답변
+20 포인트
2016-07-09 (토) 12:26:43
Copy
include_once "_common.php";$cols = array();$query = sql_query("SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '자신의 DB명' AND TABLE_NAME = 'g5_write_free' AND COLUMN_NAME LIKE 'wr_%'");while($rows = sql_fetch_array($query)) { if(str_replace("wr_", "", $rows['COLUMN_NAME']) > 0) { $cols[] = $rows['COLUMN_NAME']; }}$str = implode(", ", $cols);$query = sql_query("SELECT ".$str." FROM g5_write_free");while($rows = sql_fetch_array($query)) { foreach($cols as $v) { echo $rows[$v]."<br />"; }}
information_schema 디비 체크하면 나옵니다.
2016-07-09 (토) 12:00:17
좀더 보강하여 질문을 하면
여기서 필드가 wr_1 부터 시작해서 wr_ 30 이상 몇까지 있는지 어떻게 알수 있을까요?
phpmyadmin 등에 접속하여 테이블의 구조를 보면 알지만요 모른다고 가정하고 말입니다.
즉, wr_30,wr_31,wr_32 등등. 계속 있을껀데요...
필드가 어디까지 있는지 모른다고 가정하고 찾는 방법을 말하는겁니다.
이 방법이 있는지요..?
2016-07-08 (금) 17:12:04
select * from ~으로 해서
wr_1~ wr_10은 for문을 돌리면 되겠지만...
name이나 subject 등이 문제군요...
select like %wr_% from...이런 말도 안되는 방법을 상상했었네요...
답변에 대한 댓글 1개
2016-07-08 (금) 16:05:41
그냥 애초에 데이터를 불러올때에
select * from 으로 모든 데이터를불러오고
뽑아줄때에 조건을 주어서 필드이름이 wr_ 이라면 출력시는게 쉽지않을까요?
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.