채택완료

게시판의 필드를 찾기...

2016-07-08 (금) 16:03:17 2,861

필드에서 값을 찾는게 아니라 테이블에서 필드를 찾는겁니다.

예를들어

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 디비 체크하면 나옵니다. 

좀더 보강하여 질문을 하면

여기서 필드가 wr_1 부터 시작해서 wr_ 30 이상 몇까지 있는지 어떻게 알수 있을까요? 

phpmyadmin 등에 접속하여 테이블의 구조를 보면 알지만요 모른다고 가정하고 말입니다. 

즉, wr_30,wr_31,wr_32 등등. 계속 있을껀데요... 

필드가 어디까지 있는지 모른다고 가정하고 찾는 방법을 말하는겁니다. 

이 방법이 있는지요..?

select * from ~으로 해서

wr_1~ wr_10은 for문을 돌리면 되겠지만...

name이나 subject 등이 문제군요...

select like %wr_% from...이런 말도 안되는 방법을 상상했었네요... 

답변에 대한 댓글 1개

번쩍이는 아이디어로 탄생을 할수도 있는.. ^^;

그냥 애초에 데이터를 불러올때에

select * from 으로 모든 데이터를불러오고

뽑아줄때에 조건을 주어서 필드이름이 wr_ 이라면 출력시는게 쉽지않을까요?

답변에 대한 댓글 1개

필드의 값이 아니라 필드 이름을 조건으로 어떻게 뽑아 오나요?

답변을 작성하려면 로그인이 필요합니다.