리스트페이지에서 분할필드를 일괄편집할때 쿼리문이 궁금합니다..

리스트페이지에서 분할필드를 일괄편집할때 쿼리문이 궁금합니다..

QA

리스트페이지에서 분할필드를 일괄편집할때 쿼리문이 궁금합니다..

본문

개발자분께서 보시기에 참으로 엉터리 질문같아 보일까 싶어서, 어떻게든 검색으로 해결해 보려 했으나

몇시간째 이래저래 코드를 수정해보아도 해결이 안되어서 도저히 안되겠다 싶어 도움을 청해봅니다..

 

간단히 말씀드리자면 리스트 페이지에서 필드수정이 가능한 게시판스킨에서

필드중 분할된 필드가 있을때, 각 게시물에서 이 분할된 필드들을 저장하는 쿼리문이 궁금합니다.

 

 

list.skin.php 는 이러합니다.


<form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
... 중간생략
...
...
<td><input type="text" name="wr_1[<?php echo $i ?>]" value="<?php echo $list[$i]['wr_1']; ?>" id="wr_1[<?php echo $i ?>]" class="span" placeholder=""></td>
...
<td>
<input type="text" name="wr3[0][<?php echo $i ?>]" value="<?php echo $wr3[0]; ?>" class="span2" size="6" >px ~
<input type="text" name="wr3[1][<?php echo $i ?>]" value="<?php echo $wr3[1]; ?>" class="span2" size="6" >px
</td>
.. 중간생략(여분 필드 wr_3을 분할해서 사용중입니다.)
..
..
<a href="javascript:select_update();" class="btn_check">전체수정</a>
</form>
 
<script>
function select_update() {
    var f = document.fboardlist;
    f.action = "<?php echo $board_skin_url ?>/list_update.skin.php";
    f.submit();
}
</script>

 

 

list_update.skin.php 는 이러합니다.


<?
include_once("./_common.php");
for ($i=0; $i<$chk; $i++){
    $wr_id = $_POST['wr_id_up'][$i];
        $sql = " update {$write_table} set
      wr_10 = '$wr_10[$i]',
      wr_subject = '$wr_subject[$i]',
      wr_1 = '$wr_1[$i]',
      wr_2 = '$wr_2[$i]',
      wr_3 = '$wr_3[$i]',
      wr_4 = '$wr_4[$i]',
      wr_5 = '$wr_5[$i]',
      wr_6 = '$wr_6[$i]',
      wr_9 = '$wr_9[$i]',
      wr_7 = '$wr_7[$i]'
                  where wr_id = '$wr_id' ";
        sql_query($sql);
}
goto_url(G5_BBS_URL."/board.php?bo_table=$bo_table".$qstr);
?>

 

 

 

write_update.skin.php 는 이러합니다.


<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

$wr3 = implode("|", $_POST['wr3']);
$query = "UPDATE $write_table SET wr_3 = '{$wr3}' WHERE wr_id = ".$wr_id;
sql_query($query);
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.$qstr);
?> 

 

위 코드를 참고해서

list_update.skin.php 를 몇시간째 이렇게 저렇게 수정해보았는데,

기존에 있던 wr_3값들이 다 날라가고... 잘 안풀리네요.

완전 초보다라 검색하는것 자체도 어려움이 있네요. 흐흐

 

 

이 질문에 댓글 쓰기 :

답변 2

기존 코드들에 이상한 부분들이 있어,

기대했던 결과가 나오지 않을 가능성이 높습니다만,

제 나름 생각해본 수정 코드입니다.

 

list.skin.php


<input type="text" name="wr_3[<?php echo $i ?>][0]" value="<?php echo $wr3[0]; ?>" class="span2" size="6" >px ~
<input type="text" name="wr_3[<?php echo $i ?>][1]" value="<?php echo $wr3[1]; ?>" class="span2" size="6" >px

 

list_update_skin.php


for ($i=0; $i<$chk; $i++){
  $wr_id = $_POST['wr_id_up'][$i];
  $wr_3 = implode("|", $wr_3[$i]);
    $sql = " update {$write_table} set
    wr_10 = '$wr_10[$i]',
    wr_subject = '$wr_subject[$i]',
    wr_1 = '$wr_1[$i]',
    wr_2 = '$wr_2[$i]',
    wr_3 = '$wr_3',

답변 감사합니다. 마르컴퍼니님.
코드가 이상해서 죄송합니다. ㅜ_ㅜ
많이 부족해서 엉터리가 많아요.. 흑..
말씀해주신데로 나름 이리저리 수정해보아도 분할 필드값 저장이 안되고 있어요.

아! 그리고 중요할것 같은, 부분 빼먹은곳이 있어서 추가해봅니다..
list.skin.php 의 for 문에서
<?php
for ($i=0; $i<count($list); $i++) {
$wr3 = explode("|",$list[$i]['wr_3']);
?>
<input type='hidden' name='wr_id_up[<?php echo $i ?>]' value='<?php echo $list[$i]['wr_id'] ?>'>
이부분이요..

이부분도 같이 이리 저리 수정해보았느데... 흐흐.
저장이 안되네용.
너무 부족해서 죄송합니다. ^^;;;;

for ($i=0; $i<count($list); $i++) {
echo $list[$i]['wr_3']; exit;
$wr3 = explode("|",$list[$i]['wr_3']);



for ($i=0; $i<count($list); $i++) {

$wr3 = explode("|",$list[$i]['wr_3']);
print_r2($wr3);


저장하는 부분에서도 하나씩

e cho 로 값이 어떻게 들어가있는지


sql_query($sql);
echo $sql;
exit;

확인해보면서 수정하는 것을 추천합니다.

마르스컴퍼님 답변에서 힌트를 얻어서 이리저리 수정해보다가 성공한 듯합니다.

마르스컴퍼님 답변 정말 너무 감사드립니다~!!

오늘도 좋은 하루 되시길 바랍니다.

 

list.skin.php


 <?php
  for ($i=0; $i<count($list); $i++) {
  $wr3 = explode("|",$list[$i]['wr_3']);
  ?>
<input type='hidden' name='wr_id_up[<?php echo $i ?>]' value='<?php echo $list[$i]['wr_id'] ?>'> 
..
..
<input type="text" name="wr3[<?php echo $i ?>][0]" value="<?php echo $wr3[0]; ?>">

 

list_update.skin.php


 <?php
for ($i=0; $i<$chk; $i++){
    $wr_id = $_POST['wr_id_up'][$i];
 $wr3 = implode("|", $_POST['wr3'][$i]);
        $sql = " update {$write_table} set
      wr_1 = '$wr_1[$i]',
      wr_2 = '$wr_2[$i]',
      wr_3 = '$wr3',
      ...
                  where wr_id = '$wr_id' ";
        sql_query($sql);
}

 

이렇게 수정해보니 echo 값도 입력한 그대로 출력되고, 일단 성공했습니다.

다른 문제가 없는지는 계속 써봐야 알듯하지만요..흐흐

읽어주셔서 감사합니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 4

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT