질문 Q #10133
CI 에서 DB 테이블의 주석의 이름값을 가져오기 질문
이지포토 2012-11-16 15:50:32

$fields = $this->db->field_data('table_name'); 하면 필드 네임을 가져오는데 여기서

pear 에서 처럼 자동으로 주석으로 달린 네임값을 가져오는 방법은 없나요?

-- pear 예제 --
 // 자동 제목 알기

  function list_name(){

   global $db;
   isset($que);
   isset($res);
   isset($page);
   $que = "
     SELECT 
      catename,
      parentname,
      pparentname,
      ppparentname

     FROM  shop_category where 1";

   return getColumnName($que);
  }


 

답변 5
#1 변종원(웅파) 2012-11-16 16:25:34
테이블 주석

SELECT TABLE_SCHEMA,TABLE_NAME,AUTO_INCREMENT,TABLE_COMMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='database_name' AND TABLE_NAME='테이블명'


컬럼 주석

SELECT `COLUMN_COMMENT` FROM information_schema.COLUMNS WHERE `TABLE_SCHEMA` ='db명' and TABLE_NAME = '테이블명'
AND `COLUMN_NAME`= '필드명'


ci의 함수로는 없습니다.
#2 이지포토 2012-11-16 18:24:44

답변감사 합니다. 함수로 만들어 써야겠군요.

#3 이지포토 2012-11-16 20:25:56

 한번 만들어 봤습니다. 고견 부탁 드립니다.

==컨트롤==

//member 팝업상세보기
 function popdetail($idxNo)
 {
  $data['col'] = $this->mem_model->column_name();
  $data['row'] = $this->mem_model->kcGetData($idxNo);
  $this->load->view('admin/member/pop_member_detail_view', $data);
 }

 

==모델==
 function column_name(){ 
   return cN($this->table_name) ;
  }

==헬퍼==
//colum name 자동으로 가져오기

 function cN($table){ 
  $CI = & get_instance();
   $sql="SELECT column_name, column_comment FROM information_schema.columns WHERE table_name='".$table."' "; 
   $query=$CI->db->query($sql); 
  
   foreach ($query->result_array() as $key => $row)   { 
   $column_comment[$row['column_name']]=$row['column_comment']; 
   }

   return $column_comment ;
  }

 


==뷰==
<?
 $table_name[] = array('userid','passwd','name','level','type','mileage','quest','answer','tel1','tel2','zipcode','addr1','addr2','email','ordcnt','ordsum','adt','bankname','bankregnum','cashback','regnum1','regnum2','com','step','com_sn','ceo','jong1','jong2','comzip','comaddr1','comaddr2','login_count');
?>

<table width="80%" border="0" cellpadding="0" cellspacing="0">
<? for($i=0;$i<count($table_name[0]);$i++){?>
    <tr><td align="left" class='table_input_gubun'> <?=$col[$table_name[0][$i]]?></td><td width="3"></td><td><?=$row[$table_name[0][$i]]?></td></tr><tr height="2"><td colspan="3"></td></tr>  
<?}?>
</table>

#4 한대승(불의회상) 2012-11-19 12:41:35
이지포토// 멋진데요.. ^^
정리 하셔서 팁란에 올려주시면 좋을것 같습니다.
#5 니삼 2012-11-19 13:21:57
주석을 이렇게도 이용하는 방법이 있군요 하나 배워갑니다~~