채택완료

기본여분필드외에 더 추가 할 경우..

2017-04-13 (목) 11:24:04 5,335

너무 궁금해서 질문해요

여분필드 관련해서 검색을해서 추가를했는데

추가한 여분필드에 정상적으로 DB에 저장되는것 까지 확인했고

보여지는것도 잘 보여지는데 수정만 하면 해당 값을 가지고 오질 못하네요

뭐가 문제일까요?

1. DB에 접속해서 해당 테이블에 여분필드를 wr_11 ~ wr_20까지 추가했습니다

2. 해당 스킨 폴더에 write_update.skin.php 생성후

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$sql = " update $write_table
   set wr_11 = '$wr_11',
    wr_12 = '$wr_12',
    wr_13 = '$wr_13',
    wr_14 = '$wr_14',
    wr_15 = '$wr_15',
    wr_16 = '$wr_16',
    wr_17 = '$wr_17',
    wr_18 = '$wr_18',
    wr_19 = '$wr_19',
    wr_20 = '$wr_20'
   where wr_id = '$wr_id' ";
sql_query($sql);
?>​​

이렇게 넣어주었습니다.

3. 그리고 기존에 여분필드처럼 write.skin.php와 list.skin.php에 불러와서 만들었는데요

왜 수정하기만 하면 해당 값을 못 불러올까요?????

혹시 더 추가해야하는게 제가 빼먹은게 있을까요?

|

답변 4개 / 댓글 6개

채택된 답변
+20 포인트

<input type="text" name="wr_11" value="<?php echo $write['wr_11'] ?>" id="wr_11" class="frm_input" size="100" maxlength="100" required>


이런식으로 변경하세요~

답변에 대한 댓글 5개

우와!!너무 감사합니다 ㅠㅠㅠ 하나만 더 질문해도 될까요?
기본으로 제공되는 여분필드는 value부분에 value="<?php echo $wr_1 ?>" 그냥 이렇게 작성해도 잘 불러와 지는데 무슨 차이가 있는걸까요? 번거롭게 질문 드려 죄송합니다 ㅠㅠ
기본으로 제공되는 여분필드에 $wr_1, $wr_2, $wr_3 ... $wr_10 등으로 불러와 진다는건 저도 처음 들어봅니다.

변수에 한번 더 담았는지는 잘 모르겠네요.. ※ 그렇게 기본으로 사용해본적이 없어서....



기본적으로 그누는... 각각의 필드를

wrtie 에서는 $write[wr_1]; 등에 담겨지고

view 에서는 $view[wr_1]; 등에 담겨지고

list 에서는 $list[$i][wr_1]; 등에 담겨지고

합니다.


그럼으로 wr_11은

$write[wr_11]에 담겨질것이며 wr_15는 $write[wr_15] 에 담겨질겁니다..

그래서 $wr_11에는 없습니다.


혹여나 write 상단 부분에

[code]
$wr_11 = $write[wr_11];
[/code]
이렇게 한다면

기존 수정전의 소스대로 사용해도 가능합니다.
/bbs/write.php 파일을 보면 이렇게 되어 있습니다.

if ($w == 'u' || $w == 'r') {
if ($write['wr_id']) {
// 가변 변수로 $wr_1 .. $wr_10 까지 만든다.
for ($i=1; $i<=10; $i++) {
$vvar = "wr_".$i;
$$vvar = $write['wr_'.$i];
}

여기서 $i<=10 숫자를 추가한 개수만큼 늘려주시면
추가한 여분필드도 <?php echo $wr_11 ?> 이렇게 사용 가능합니다.
아 그렇군요~~. 처음 알았네요~~... ^^; 엄지 척~
덕분에 너무 정확하게 알았어요!! 너무 감사합니다!!!!!

해당 게시판 DB 테이블에 wr_11부터 wr_20 칼럼까지 추가했나요?

 

ALTER TABLE {$write_table} ADD wr_11 INT UNSIGNED NOT NULL DEFAULT '0'

이렇게 추가하셨나요?

칼럼이 추가 되어야 저장할수 있습니다.

이걸 추가하지 않았으면 저장되지 않아요.

 

 

그리고 칼럼 위처럼 추가했다면...

 

<input type="text" name="wr_11" value="<?php echo $wr_11 ?>" id="wr_11 required" class="frm_input" size="100" maxlength="100" > 

이게 아니라


<input type="text" name="wr_11" value="<?php echo $write['wr_11'] ?>" id="wr_11 required" class="frm_input" size="100" maxlength="100" >

이렇게 하셔야 값이 보일겁니다.

글쓰기페이지는 $write['wr_11'];

리스트페이지는 $list[$i]['wr_11'];

상세페이지는 $view['wr_11'];

글쓰기를 해서, 필드에 입력받아 디비저장까지 잘 되고

view 에서나 list 에서 잘 보이는데....

글을 수정하면 해당 필드값이 비어 있다 이말씀이신것 같은데...

write.skin.php 에 어떻게 넣으셨는지요?

답변에 대한 댓글 1개

<input type="text" name="wr_11" value="<?php echo $wr_11 ?>" id="wr_11 required" class="frm_input" size="100" maxlength="100" > 이렇게 작성했어요!! ㅠㅠ

답변을 작성하려면 로그인이 필요합니다.