아래 소스는 기한이있는모임 라디오버튼 클릭시 그 하단의 id=”period2″ 부분을 보여주는 소스인데 IE에서는 이상없이 작동을 한다.<그림1> 그런데 파이어폭스에서는 속성값들이 무시되고 첫번째 셀에 모두 표시가 되어버린다.<그림2> 답을 찾으려고 구글링을 1시간 넘게 했지만 답은 없었다. 내가 검색을 못하는건지 원인도 없었다. 그러나 꽁수로 해결은 가능했다. 아래처럼 테이블로 감싸서 전체라인을 하나의 행으로 만들어주면 된다. 쩝….
20여개의 mysql 관련 클래스중에서 필요한 것만 모아서 짜집기한 클래스… 일반적인 mysql 클래스에 리스트와 페이징까지 한번에 처리하는 함수와 xml로 결과를 출력하는 함수 추가.
클래스내용 >>
[code] //DB클래스 class dbH { // PRIVATE 변수 private $CONN; // DB 커넥트 private $ERR_QUERY; // 에러가 발생한 쿼리 private $ERR_MSG; // 에러 메세지 private $RESULT; // 쿼리 결과 private $REC_COUNT; // 레코드 합계 private $ROW; // 레코드 결과 FETCH private $ROWNUM; // 현재 레코드 번호
// 클래스 초기화 function dbH() { $DB_HOST = “localhost”; $DB_USER = “new_chong”; $DB_PW = “new3432”; $DB_NAME = “new_chong”;
$this->CONN = mysql_connect($DB_HOST, $DB_USER, $DB_PW) or die(“데이터베이트 연결 실패! 환경설정을 확인해주세요.”); mysql_select_db($DB_NAME, $this->CONN) or die(“데이터베이트 접근 실패! 환경설정을 확인해주세요.”); }
function getMessage() { return $this->message; }
//GET NUM ROWS function getNumRows() { return mysql_num_rows($this->result); }
//GET AFFECTED ROWS function getAffectedRows() { return mysql_affected_rows($this->result); }
// INSERT, UPDATE, DELETE 등의 쿼리문 실행. (결과 없음) function Open($query) { $this->ERR_MSG = “”;
/**************************************** //DEFINE NEW QUERY_STRING 페이지 링크 정의를 위한 URL파싱 ***************************************/ parse_str($_SERVER[QUERY_STRING],$QUERY_STRING); unset($QUERY_STRING[page]); foreach($QUERY_STRING as $key=>$value) { if(!$temp){ $temp=”$key=$value”; }else{ $temp.=”&$key=$value”; } } $QUERY_STRING=$temp;
/******************************************** DO UPDATE METHOD 업데이트 *******************************************/ function doUpdate($table,$array,$key_name,$key_value) { ##GET TABLE STRUCTURE $query=”SHOW COLUMNS FROM $table”; $result=mysql_query($query,$this->CONN); $i=0; while($row=mysql_fetch_array($result) ) { if(isset($array[$row[Field]]) ) { $set[$i]=$row[Field].”='”.$array[$row[Field]].”‘”; $i++; } } $set=implode(“,”,$set);
##EXECUTE QUERY STATEMENT $query=”UPDATE $table SET $set WHERE $key_name=’$key_value'”; $this->doQuery($query); return true; }
/******************************************** 테이블 리스트 반환 *******************************************/ function GetTableList(){ if($this->result=mysql_list_tables($DB_NAME,$this->CONN)){ $i=0; while($i < mysql_num_rows($this->result)){ $tb_names[$i]=mysql_tablename($this->result,$i); $i++; } return($tb_names); }else return $this->errorMessage(“Unable to find any tables in database: $DB_NAME”); }
/******************************************** 필드명 반환 *******************************************/ function GetFieldList($tbl_name){ if($this->result=mysql_list_fields($DB_NAME,$tbl_name,$this->CONN)){ $i=0; while($i < mysql_num_fields($this->result)){ $fd_names[$i]=mysql_field_name($this->result,$i); $i++; } return($fd_names); }else return $this->errorMessage(“Unable to find any field list in table: $tbl_name”); }
/******************************************** returns XML-formatted record rows from query results. $this->data holds the XML only, and the function returns the XML header + the data example: header(“Content-type: text/xml”); echo $sql->XML_Output(“SELECT * FROM yourTable”); ********************************************/ function XML_DataOutput($query, $tags = array(‘dataset’,’record’)) { if($this->result=mysql_query($query,$this->CONN)) { $this->fields=mysql_num_fields($this->result); $xmlheader='<?xml version=”1.0″ ?>’.””; $this->data.='<‘.$tags[0].’>’.””; while($this->rows = mysql_fetch_array($this->result)) { $this->data.= “‘”>\\t\\t”.'<‘.$tag.’>’. preg_replace(“/([\\r])/”, ”, strip_tags($this->rows[$i])). ‘</’.$tag.’>’.””; } $this->data.= “에 배치하는 팁앤텍태그 DB connect, mysql class, 리스트, 페이징