디비에 추가 테이블을 생성하고 이용하는 방법 질문입니다 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

디비에 추가 테이블을 생성하고 이용하는 방법 질문입니다 정보

디비에 추가 테이블을 생성하고 이용하는 방법 질문입니다

본문

##
## Table structure for table `$g4[adpoll_table]`
##
DROP TABLE IF EXISTS $g4[adpoll_table];
CREATE TABLE $g4[adpoll_table] (
cf_1_poll varchar(255) NOT NULL default '',
  cf_2_poll varchar(255) NOT NULL default '',
  cf_3_poll varchar(255) NOT NULL default '',
  cf_4_poll varchar(255) NOT NULL default '',
  cf_5_poll varchar(255) NOT NULL default '',
  cf_6_poll varchar(255) NOT NULL default '',
  cf_7_poll varchar(255) NOT NULL default '',
  cf_8_poll varchar(255) NOT NULL default '',
  cf_9_poll varchar(255) NOT NULL default '',
  cf_10_poll varchar(255) NOT NULL default ''
  ) TYPE=MyISAM;
 
와 같이 테이블을 추가하고
common.php 에 아래 라인을 추가하였습니다
$adpoll      = array();// 추가
 
$adpoll      = sql_fetch(" select * from $g4[adpoll_table] ");/// 추가
 
그리고 config.php 에 아래를 추가
$g4['adpoll_table']        = $g4['table_prefix'] . "adpoll";        // 기본환경 설정 테이블
 
 
위와 같이하고 이용할때는 <?=$adpoll[cf_3_poll]?> 와 같이 이용하려고 했습니다..
그런데 <?=$adpoll[cf_3_poll]?> 에 저장한 데이타가 저장이 안됩니다..
<?=$adpoll[cf_3_poll]?> 에서 adpoll 이 잘못되었나...요 아니면 어디가 잘 못인지좀..부탁합니다
  • 복사

댓글 전체

>><?=$adpoll[cf_3_poll]?> 에 저장한 데이타가 저장이 안됩니다..
폼에 의거 값변경등에 의해 저장이 아니되는 것인가요..?
아님 데이타는 있는데 출력이 안되는 것인가요..?

$adpoll      = array();// 추가
을 주석처리하면 어떤가요....?
인스톨 디비에 바로 위의 내용을 담아서 인스톨 했습니다..

전에는
##
## Table structure for table `$g4[config_table2]`
##
DROP TABLE IF EXISTS $g4[config_table2];
CREATE TABLE $g4[config_table2] (
cf_1_poll varchar(255) NOT NULL default '',
  cf_2_poll varchar(255) NOT NULL default '',
  cf_3_poll varchar(255) NOT NULL default '',
  cf_4_poll varchar(255) NOT NULL default '',
  cf_5_poll varchar(255) NOT NULL default '',
  cf_6_poll varchar(255) NOT NULL default '',
  cf_7_poll varchar(255) NOT NULL default '',
  cf_8_poll varchar(255) NOT NULL default '',
  cf_9_poll varchar(255) NOT NULL default '',
  cf_10_poll varchar(255) NOT NULL default ''
  ) TYPE=MyISAM;

위 와 같이 한다음에 <?=$config2[cf_3_poll]?> 와 같이 이용(헐랭이님의  가르침)했는데..여러개의 필드가  구분이 잘 안되서..꼼수로 한번 다르게 해보려니 안되네요
위와 같이 생성시에는 해당 필드에 값이 모두 없습니다.
당연히 그냥 해당 필드를 출력시키면 아무것도 안나타나지요...^^

제가 질문드린 것은 위테이블에 값을 넣어야 하지 않습니까...

그때 해당 폼에 값을 넣고 디비에 입력하는 부분 쿼리를 insert into $g4[adpoll_table] 을 하셨는지 아니면 update $g4[adpoll_table] 로 하셨는지가 궁금한 것입니다...
adm/config_form.php 을 변하여 adm/config_form_poll.php 을 만들고
adm/config_form_update.php 를 변경하여 adm/config_poll_update.php 만들이 실행시키고 있습니다
그 부분과는 상관이 없는 것으로 보입니다.
새로운 테이블을 생성하셨으니 마땅히 해당테이블에 값을 입력하거나 수정하는 부분이 있어야 겠기에 그부분의 처리를 알고 싶은 것입니다.
쉽게 말씀드리면 $g4[config_table]은 인덱스가 없습니다.
또한 관리자화면의 기본환경설정을 통하여 변경할 수가 있습니다.
(config_form.php에서 자료를 수정하여 confog_form_update.php에서 자료를 수정해 줍니다.)

1. 위의 ()안의 내용처럼 새로 만드신 테이블을 처리하는 화일이나 부분이 있는지?
2. 있다면 해당 부분을 뿌려보세요....
config_poll.php

<?
$sub_menu = "4009200";
include_once("./_common.php");

auth_check($auth[$sub_menu], "r");

if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.");


$g4['title'] = "기본환경설정";
include_once ("./admin.head.php");
?>
<script language="javascript">
<!--
function showimage() {
    if (!document.images)
        return
        document.images.pictures.src="<?=$g4[path]?>/skin/poll/"+document.fconfigform.cf_3_poll.options[document.fconfigform.cf_3_poll.selectedIndex].value+"/thum_img.gif";
}
//-->
</script>
<table width=100% cellpadding=0 cellspacing=0 border=0>
<form name=fconfigform method=post action='javascript:fconfigform_submit(document.fconfigform);'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<tr class='ht'>
    <td colspan=4 align=left><?=subtitle("추가 스킨 설정")?></td>
</tr>
<tr><td colspan=4 class=line2></td></tr>
<!---//////////////////////////////-추가된 부분-시작-///////////////////////////////-------------------------------->

<tr class='bgcol3'>
    <td align=left colspan=4>
<font color=#FF8000>투표 스킨설정(poll)</font>
    </td>
</tr>
<tr><td colspan=4 class=line1></td></tr>
<tr class='ht'>
    <td colspan=2>
<?
if($adpoll[cf_1_poll] =="left"){
    $ranskcheckdd1 =" checked";
}else if($adpoll[cf_1_poll] =="right"){
  $ranskcheckdd2 =" checked";
}
else if($adpoll[cf_1_poll] =="no"){
  $ranskcheckdd4 =" checked";
}
?>
메인페이지 투표(cf_1_poll)</td>
    <td colspan=2>
<input name="cf_1_poll" type="radio" value="left"<?=$ranskcheckdd1?>>왼쪽 &nbsp;&nbsp;
    <input name="cf_1_poll" type="radio" value="right"<?=$ranskcheckdd2?>> 오른쪽(포탈형)
<input name="cf_1_poll" type="radio" value="no"<?=$ranskcheckdd4?>> 출력안함
    </td>

</tr>
<tr><td colspan=4 class=line1></td></tr>
<tr class='ht'>
    <td colspan=2>
<?
if($adpoll[cf_2_poll] =="left"){
    $ranskcheckdd4 =" checked";
}else if($adpoll[cf_2_poll] =="right"){
  $ranskcheckdd5 =" checked";
}
else if($adpoll[cf_2_poll] =="no"){
  $ranskcheckdd6 =" checked";
}
?>
서브페이지 투표(cf_2_poll)</td>
    <td colspan=2>
<input name="cf_2_poll" type="radio" value="left"<?=$ranskcheckdd4?>>왼쪽 &nbsp;&nbsp;
    <input name="cf_2_poll" type="radio" value="right"<?=$ranskcheckdd5?>> 오른쪽(포탈형)
<input name="cf_2_poll" type="radio" value="no"<?=$ranskcheckdd6?>> 출력안함
    </td></tr>
<tr><td colspan=4 class=line1></td></tr>
<tr>
<td colspan=2>스킨(cf_3_poll)</td>
    <td colspan=2><select id=cf_3_poll name=cf_3_poll  itemname="투표 스킨" onChange="showimage()">
        <?
        $arr = get_skin_dir("poll");
        for ($i=0; $i<count($arr); $i++) {
            echo "<option value='$arr[$i]'>$arr[$i]</option>\n";
        }
        ?></select>
        <script language="JavaScript"> document.getElementById('cf_3_poll').value="<?=$adpoll[cf_3_poll]?>";</script>
    </td>
</tr>
<tr><td colspan=4 class=line2></td></tr>
<tr>
  <td colspan=3></td>
      <td  align=center>
<IMG src="<?=$g4[path]?>/skin/poll/<?=$adpoll[cf_3_poll]?>/thum_img.gif"  BORDER="0" ALT="" name="pictures">
      </td>
</tr>
<!----추가된 부분끝--------------------------------->

<tr><td colspan=4 class=line2></td></tr>
</table>

<p align=center>
    <input type=submit class=btn1 accesskey='s' value='  확  인  '>
</form>

<script language="javascript">
function fconfigform_submit(f)
{
    f.action = "./config_form_poll_update.php";
    f.submit();
}
</script>

<?
include_once ("./admin.tail.php");
?>

configt_poll_update.php

<?
include_once("./_common.php");

check_demo();
if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.");

$sql = " update $g4[adpoll_table]
            set cf_1_poll = '$cf_1_poll',
                cf_2_poll = '$cf_2_poll',
cf_3_poll = '$cf_3_poll'
";
 sql_query($sql);

goto_url("./config_form_poll.php");
?>

입니다...
configt_poll_update.php

<?
include_once("./_common.php");

check_demo();
if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.");

$sql = " update $g4[adpoll_table]
            set cf_1_poll = '$cf_1_poll',
                cf_2_poll = '$cf_2_poll',
cf_3_poll = '$cf_3_poll'
";
 sql_query($sql);

goto_url("./config_form_poll.php");
?>

입니다...

에서 입력과 수정을 구분해 주셔야 합니다.

입력시에는

$sql = " insert into $g4[adpoll_table]

수정시에는

$sql = " update $g4[adpoll_table]

위와같이 하셔야 정상동작합니다. 액션 처리 부분의 화일명도 확인하십시오....
테이블 생성하고 어떤 값도 넣지 않았기에 처음에 넣으실때는 입력으로 그 다음은 수정으로 처리하셔야 합니다. 비슷한 구문을 급조해서 테스트 해 보고 드리는 댓글입니다...^^
1. 테이블 생성
  ##
## Table structure for table `$g4[adpoll_table]`
##
DROP TABLE IF EXISTS $g4[adpoll_table];
CREATE TABLE $g4[adpoll_table] (
cf_1_poll varchar(255) NOT NULL default '',
  cf_2_poll varchar(255) NOT NULL default '',
  cf_3_poll varchar(255) NOT NULL default '',
  cf_4_poll varchar(255) NOT NULL default '',
  cf_5_poll varchar(255) NOT NULL default '',
  cf_6_poll varchar(255) NOT NULL default '',
  cf_7_poll varchar(255) NOT NULL default '',
  cf_8_poll varchar(255) NOT NULL default '',
  cf_9_poll varchar(255) NOT NULL default '',
  cf_10_poll varchar(255) NOT NULL default ''
  ) TYPE=MyISAM;
 
2. common.php 에 아래 라인을 추가하였습니다
$config = sql_fetch(" select * from $g4[config_table] ");
$config2 = sql_fetch(" select * from $g4[adpoll_table] ");// 추가
 
3.  config.php 에 아래를 추가
$g4['adpoll_table']        = $g4['table_prefix'] . "adpoll";        // 기본환경 설정 테이블

4.  입력 폼 화일
  adm_poll_form.php

<?
$sub_menu = "100900";
include_once("./_common.php");

auth_check($auth[$sub_menu], "r");

if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.");

if($config2[cf_1_poll] == "") {
$w = "";
} else {
$w = "u";
}

$g4['title'] = "기본환경설정";
include_once ("./admin.head.php");
?>

<table width=100% cellpadding=0 cellspacing=0 border=0>
<form name=fconfigform method=post action='javascript:fconfigform_submit(document.fconfigform);'>
<input type=hidden name=w value='<?=$w?>'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<tr class='ht'>
    <td colspan=4 align=left><?=subtitle("기타 설정")?></td>
</tr>
<tr><td colspan=4 class=line1></td></tr>
<tr class='ht'>
    <td colspan=4 align=left><?=subtitle("여분 필드")?></td>
</tr>
<tr><td colspan=4 class=line1></td></tr>
<? for ($i=1; $i<=10; $i=$i+2) { $k=$i+1; ?>
<tr class='ht'>
    <td><input type=text class=ed name='cf_<?=$i?>_poll' value='<?=get_text($config2["cf_{$i}_poll"])?>' title='여분필드 <?=$i?> 제목' style='text-align:right;font-weight:bold;' size=15></td>
    <td></td>
    <td><input type=text class=ed name='cf_<?=$k?>_poll' value='<?=get_text($config2["cf_{$k}_poll"])?>' title='여분필드 <?=$k?> 제목' style='text-align:right;font-weight:bold;' size=15></td>
    <td></td>
</tr>
<? } ?>
<tr><td colspan=4 class=line2></td></tr>
</table>

<p align=center>
    <input type=submit class=btn1 accesskey='s' value='  확  인  '>
</form>

<script language="javascript">
function fconfigform_submit(f)
{
    f.action = "./adm_poll_form_update.php";
    f.submit();
}
</script>

<?
include_once ("./admin.tail.php");
?>

5. 테이블 입력화일

adm_poll_form_update.php

<?
$sub_menu = "100900";
include_once("./_common.php");

check_demo();

auth_check($auth[$sub_menu], "w");

if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.");

$mb = get_member($config[cf_admin]);
if (!$mb[mb_id])
    alert("최고관리자 회원아이디가 존재하지 않습니다.");

if($w == "" ) {
$sql = " insert into $g4[adm_poll_table]
            set cf_1_poll              = '$cf_1_poll',
                cf_2_poll              = '$cf_2_poll',
                cf_3_poll              = '$cf_3_poll',
                cf_4_poll              = '$cf_4_poll',
                cf_5_poll              = '$cf_5_poll',
                cf_6_poll              = '$cf_6_poll',
                cf_7_poll              = '$cf_7_poll',
                cf_8_poll              = '$cf_8_poll',
                cf_9_poll              = '$cf_9_poll',
                cf_10_poll              = '$cf_10_poll'
                ";
sql_query($sql);
} else {
$sql = " update $g4[adm_poll_table]
            set cf_1_poll              = '$cf_1_poll',
                cf_2_poll              = '$cf_2_poll',
                cf_3_poll              = '$cf_3_poll',
                cf_4_poll              = '$cf_4_poll',
                cf_5_poll              = '$cf_5_poll',
                cf_6_poll              = '$cf_6_poll',
                cf_7_poll              = '$cf_7_poll',
                cf_8_poll              = '$cf_8_poll',
                cf_9_poll              = '$cf_9_poll',
                cf_10_poll              = '$cf_10_poll'
                ";
sql_query($sql);

//sql_query(" OPTIMIZE TABLE `$g4[config_table]` ");

goto_url("./adm_poll_form.php");
?>



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
위 내용 응용하셔서 하시면 됩니다.
늦은 시간까지 답변 대단히 감사합니다..
그런데 <?=get_text($config2["cf_{$i}_poll"])?>에서 <?=get_text($adpoll["cf_{$i}_poll"])?>로는 결국 안된다는 뜻이군요.

사실 테이블을 한 20개 정도 새로 생성해야하는데...더 이상 일수도 있구요..

config2, config3 식으로 하니...구분이 좀 어려워서 <?=get_text($config2["cf_{$i}_poll"])?>
의 config2 부분을 adpoll 로 쓰고 싶었거든요

즉,,$config2 = sql_fetch(" select * from $g4[adpoll_table] ");// 추가
에서 $adpoll = sql_fetch(" select * from $g4[adpoll_table] ");// 추가
로 되지 않는가요
© SIRSOFT
현재 페이지 제일 처음으로