리스트페이지에서 분할필드를 일괄편집할때 쿼리문이 궁금합니다..
본문
개발자분께서 보시기에 참으로 엉터리 질문같아 보일까 싶어서, 어떻게든 검색으로 해결해 보려 했으나
몇시간째 이래저래 코드를 수정해보아도 해결이 안되어서 도저히 안되겠다 싶어 도움을 청해봅니다..
간단히 말씀드리자면 리스트 페이지에서 필드수정이 가능한 게시판스킨에서
필드중 분할된 필드가 있을때, 각 게시물에서 이 분할된 필드들을 저장하는 쿼리문이 궁금합니다.
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
<?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 값도 입력한 그대로 출력되고, 일단 성공했습니다.
다른 문제가 없는지는 계속 써봐야 알듯하지만요..흐흐
읽어주셔서 감사합니다.
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.