db에 데이터가 들어가지 않는데 이유를 알고 싶습니다. (아보카도 에디션)
냥냐
1년 전
조회 2,021
contribute 라는 테이블 안에
contb_id ch_id ch_name contb_datetime contb_content contb_point contb_ch_contb contb_rel_action
이렇게 등록이 되어있고,
contribution_list.php 에
</p>
<p> </p>
<p><form name="fpointlist2" method="post" id="fpointlist2" action="./contb_update.php" autocomplete="off"></p>
<p> <input type="hidden" name="sfl" value="<?php echo $sfl ?>"></p>
<p> <input type="hidden" name="stx" value="<?php echo $stx ?>"></p>
<p> <input type="hidden" name="sst" value="<?php echo $sst ?>"></p>
<p> <input type="hidden" name="sod" value="<?php echo $sod ?>"></p>
<p> <input type="hidden" name="page" value="<?php echo $page ?>"></p>
<p> <input type="hidden" name="token" value="<?php echo $token ?>"></p>
<p> </p>
<p> <section id="anc_001"></p>
<p> <h2 class="h2_frm"><?=$config['cf_contribute_name']?> 지급/회수</h2></p>
<p> <?php echo $pg_anchor ?></p>
<p> </p>
<p> <div class="tbl_frm01 tbl_wrap"></p>
<p> <div class="tbl_frm01 tbl_wrap"></p>
<p> <table></p>
<p> <colgroup></p>
<p> <col style="width: 120px;"></p>
<p> <col></p>
<p> </colgroup></p>
<p> <tbody></p>
<p> <tr></p>
<p> <th scope="row">지급유형</th></p>
<p> <td></p>
<p> <input type="radio" id="take_type_01" name="take_type" value="P" checked</p>
<p> onclick="if(document.getElementById('take_type_01').checked) $('#take_member_name').show();" /></p>
<p> <label for="take_type_01">개별지급</label></p>
<p> </p>
<p> <input type="radio" id="take_type_02" name="take_type" value="A"</p>
<p> onclick="if(document.getElementById('take_type_02').checked) $('#take_member_name').hide();" /></p>
<p> <label for="take_type_02">전체지급</label></p>
<p> </td></p>
<p> </tr></p>
<p> <tr id="take_member_name"></p>
<p> <th scope="row"><label for="ch_name">캐릭터 이름<strong class="sound_only">필수</strong></label></p>
<p> </th></p>
<p> <td></p>
<p> <input type="hidden" name="ch_id" id="ch_id" value="" /></p>
<p> <input type="text" name="ch_name" value="" id="ch_name"</p>
<p> onkeyup="get_ajax_character(this, 'character_list', 'ch_id');" /></p>
<p> <div id="character_list" class="ajax-list-box"></p>
<p> <div class="list"></div></p>
<p> </div></p>
<p> </td></p>
<p> </tr></p>
<p> <tr></p>
<p> <th scope="row"><label for="contb_content">지급 내용<strong</p>
<p> class="sound_only">필수</strong></label></p>
<p> </th></p>
<p> <td><input type="text" name="contb_content" id="contb_content" required</p>
<p> class="required frm_input" size="80"></td></p>
<p> </tr></p>
<p> <tr></p>
<p> <th scope="row"><label for="contb_point"><?=$config['cf_contribute_name']?><strong</p>
<p> class="sound_only">필수</strong></label></th></p>
<p> <td><input type="text" name="contb_point" id="contb_point" required</p>
<p> class="required frm_input"></p>
<p> </td></p>
<p> </tr></p>
<p> </tbody></p>
<p> </table></p>
<p> </div></p>
<p> </p>
<p> </section></p>
<p> </p>
<p> <div class="btn_confirm01 btn_confirm"></p>
<p> <input type="submit" value="확인" class="btn_submit"></p>
<p> </div></p>
<p></form></p>
<p>
contb_update.php에
</p>
<p>$ch_id = $_POST['ch_id'];</p>
<p>$ch_name = $_POST['ch_name'];</p>
<p>$contb_point = $_POST['contb_point'];</p>
<p>$contb_content = $_POST['contb_content'];</p>
<p> </p>
<p>$action = '획득';</p>
<p>if($contb_point < 0) {</p>
<p> $action = '차감';</p>
<p>}</p>
<p> </p>
<p>if($take_type == 'A') {</p>
<p> // 전체지급</p>
<p> $sql_common = " from {$g5['character_table']} ";</p>
<p> $sql_search = " where ch_state = '승인' ";</p>
<p> $sql = " select * {$sql_common} {$sql_search} ";</p>
<p> $result = sql_query($sql);</p>
<p> </p>
<p> for($i=0; $ch = sql_fetch_array($result); $i++) {</p>
<p> if (($contb_point < 0) && ($contb_point * (-1) > $ch['ch_contb'])) continue;</p>
<p> </p>
<p> insert_contb($ch['ch_id'], $contb_point, "[정산]".$contb_content, $action);</p>
<p> }</p>
<p> </p>
<p>} else {</p>
<p> // 개별지급</p>
<p> if(!$ch_id && $ch_name) {</p>
<p> $ch = sql_fetch("select ch_id, ch_name, ch_contb from {$g5['character_table']} where ch_name = '{$ch_name}'");</p>
<p> $ch_id = $ch['ch_id'];</p>
<p> } else {</p>
<p> $ch = sql_fetch("select ch_id, ch_name, ch_contb from {$g5['character_table']} where ch_id = '{$ch_id}'");</p>
<p> }</p>
<p> </p>
<p> if (!$ch['ch_id'])</p>
<p> alert('존재하는 캐릭터가 아닙니다.');</p>
<p> </p>
<p> if (($contb_point < 0) && ($contb_point * (-1) > $ch['ch_contb']))</p>
<p> alert('경험치를 차감하는 경우 현재 경험치보다 작으면 안됩니다.');</p>
<p> </p>
<p> insert_contb($ch['ch_id'], $contb_point, "[정산]".$contb_content, $action);</p>
<p>}</p>
<p>
contn.lib.php 파일에는
</p>
<p>function insert_contb($ch_id, $contb, $content='', $rel_action='')</p>
<p>{</p>
<p> global $config;</p>
<p> global $g5;</p>
<p> global $is_admin;</p>
<p> </p>
<p> if ($contb == 0) { return 0; }</p>
<p> if ($ch_id == '') { return 0; }</p>
<p> $ch = get_character($ch_id);</p>
<p> if (!$ch['ch_id']) { return 0; }</p>
<p> </p>
<p> // 캐릭터 경험치</p>
<p> $ch_contb = get_contb_sum($ch_id);</p>
<p> </p>
<p> // 경험치 건별 생성</p>
<p> $contb_ch_contb = $ch_contb + $contb;</p>
<p> </p>
<p> $sql = " insert into {$g5['contribute_table']}</p>
<p> set ch_id = '$ch_id',</p>
<p> ch_name = '{$ch['ch_name']}',</p>
<p> contb_datetime = '".G5_TIME_YMDHIS."',</p>
<p> contb_content = '".addslashes($content)."',</p>
<p> contb_point = '$contb',</p>
<p> contb_ch_contb = '$contb_ch_contb',</p>
<p> contb_rel_action = '$rel_action' ";</p>
<p> sql_query($sql);</p>
<p> </p>
<p>// 경험치 UPDATE</p>
<p> $sql = " update {$g5['character_table']} set ch_contb = '$contb_ch_contb' where ch_id = '$ch_id' ";</p>
<p> sql_query($sql);</p>
<p> </p>
<p> </p>
<p> return 1;</p>
<p>}</p>
<p> </p>
<p>// 경험치 내역 합계</p>
<p>function get_contb_sum($ch_id)</p>
<p>{</p>
<p> global $g5, $config;</p>
<p> </p>
<p> // 포인트합</p>
<p> $sql = " select sum(contb_point) as sum_contb_point</p>
<p> from {$g5['contribute_table']}</p>
<p> where ch_id = '$ch_id' ";</p>
<p> $row = sql_fetch($sql);</p>
<p> </p>
<p> return $row['sum_contb_point'];</p>
<p>}</p>
<p>
이렇게 코드 작성을 해놨습니다.
그런데 맨 위 해당 db에 데이터가 들어가지 않아요... 왜 그럴까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
1년 전
쿼리를 echo 로 찍으신 후 그 쿼리문을 직접 phpmyadmin 이나 db 외부 프로그램을 이용해서 직접 해보는 방법 외에는 sql_query($sql) or die (mysql_error()); 을 찍어보셔야 하는데....
직접 보는게 더 낫습니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
플라이
Expert
1년 전
$sql = " insert into {$g5['contribute_table']}
set ch_id = '$ch_id',
ch_name = '{$ch['ch_name']}',
contb_datetime = '".G5_TIME_YMDHIS."',
contb_content = '".addslashes($content)."',
contb_point = '$contb',
contb_ch_contb = '$contb_ch_contb',
contb_rel_action = '$rel_action' ";
sql_query($sql);
해당 부분의 쿼리를 찍어서 해당 쿼리를 db에서 직접쿼리를 실행해서 확인해 보세요
제대로 쿼리가 실행되는거라면 등록되어야 하는게 맞습니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인