write_update.skin에서 sql문을 반복문으로 할 수 있나요~?
본문
안녕하세요.
wr_11이상 사용하는 방법을 찾다가 write_update.skin.php파일을 생성하는 방법을 알게되었습니다.
$wr_11_chk = sql_fetch("SHOW COLUMNS FROM `$write_table` WHERE `Field` = 'wr_11'");
if($wr_11_chk['Field'] == "") sql_query("ALTER TABLE `$write_table` ADD `wr_11` VARCHAR( 255 ) NOT NULL AFTER `wr_10` ");
$wr_12_chk = sql_fetch("SHOW COLUMNS FROM $write_table WHERE `Field` = 'wr_12'");
if($wr_12_chk['Field'] == "") sql_query("ALTER TABLE $write_table ADD `wr_12` VARCHAR( 255 ) NOT NULL AFTER `wr_11` ");
$wr_13_chk = sql_fetch("SHOW COLUMNS FROM $write_table WHERE `Field` = 'wr_13'");
if($wr_13_chk['Field'] == "") sql_query("ALTER TABLE $write_table ADD `wr_13` VARCHAR( 255 ) NOT NULL AFTER `wr_12` ");
$wr_14_chk = sql_fetch("SHOW COLUMNS FROM $write_table WHERE `Field` = 'wr_14'");
if($wr_14_chk['Field'] == "") sql_query("ALTER TABLE $write_table ADD `wr_14` VARCHAR( 255 ) NOT NULL AFTER `wr_13` ");
$sql =" update $write_table
set
wr_11 = '$wr_11',
wr_12 = '$wr_12',
wr_13 = '$wr_13',
wr_14 = '$wr_14'
where wr_id = '$wr_id'
";
sql_query($sql);
대략 이런 방법인데 이를 한 200개까지 늘리고싶은데.. 하나 하나 써야할지.. 어떡해야 할지 조언 부탁드려봅니다!
답변 2
여분 필드는 한꺼번에 추가하는 방법 팁게시판에 있을거에요.
쿼리는
for ($i=11; $i<=200; $i++) {
$vvar = "wr_".$i;
$comma = "";
if($i < 200) $comma = ",";
$sql_set .= " ".$vvar. "= '".$$vvar."'".$comma." ";
}
$sql =" update $write_table set $sql_set where wr_id = '$wr_id'";
sql_query($sql);
이런식으로 하셔도 될듯합니다.
!-->
$wr_11_chk = sql_fetch("SHOW COLUMNS FROM `$write_table` WHERE `Field` = 'wr_11'");
if(!$wr_11_chk['Field']){ // 체크 한번만 하고 여분필드를 추가하면 됩니다 wr_11이 없다면 나머지도 추가되지않았다는 것을 알 수 잇잖아요?
sql_query("ALTER TABLE `$write_table` ADD `wr_11` VARCHAR( 255 ) NOT NULL, ADD `wr_12` VARCHAR( 255 ) NOT NULL~~~이렇게 한문장에 모두 넣으면 됩니다
200개 가까이 된다면 for문으로 add쿼리를 만들어서 해야겠지요
}
그런데 이 코드를 여기다 넣을 것 없이 별도 화일로 만들어 한번만 실행 시켜주면 됩니다
글쓰기 할때마다 체크하게 만들 필요가 없지않을까요?