여분필드를 53번까지 추가하기위해 진행해보았습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
여분필드를 53번까지 추가하기위해 진행해보았습니다.

QA

여분필드를 53번까지 추가하기위해 진행해보았습니다.

본문

여분필드를 53번까지 추가하기위해 진행해보았습니다.

phpadmin에서 테이블에 wr_1~10까지의 구조와 같게 11부터 53까지 추가하였습니다.

3543063980_1624433719.9839.png

 

그 후 게시판 스킨 폴더에 write_update.skin.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',
                 wr_21 = '$wr_21',
                 wr_22 = '$wr_22',
                 wr_23 = '$wr_23',
                 wr_24 = '$wr_24',
                 wr_25 = '$wr_25',
                 wr_26 = '$wr_26',
                 wr_27 = '$wr_27',
                 wr_28 = '$wr_28',
                 wr_29 = '$wr_29',
                 wr_30 = '$wr_30',
                 wr_31 = '$wr_31',
                 wr_32 = '$wr_32',
                 wr_33 = '$wr_33',
                 wr_34 = '$wr_34',
                 wr_35 = '$wr_35',
                 wr_36 = '$wr_36',
                 wr_37 = '$wr_37',
                 wr_38 = '$wr_38',
                 wr_39 = '$wr_39',
                 wr_40 = '$wr_40',
                 wr_41 = '$wr_41',
                 wr_42 = '$wr_42',
                 wr_43 = '$wr_43',
                 wr_44 = '$wr_44',
                 wr_45 = '$wr_45',
                 wr_46 = '$wr_46',
                 wr_47 = '$wr_47',
                 wr_48 = '$wr_48',
                 wr_49 = '$wr_49',
                 wr_50 = '$wr_50',
                 wr_51 = '$wr_51',
                 wr_52 = '$wr_52',
                 wr_53 = '$wr_53'
                 
          where wr_id = '$wr_id' ";
sql_query($sql);
// 자신만의 코드를 넣어주세요.
//휴대전화
$wr_1 = "$hp1-$hp2-$hp3";
$sql1  = " update $write_table set wr_1 = '$wr_1' where wr_id = '$wr_id' ";
sql_query($sql1);
//전화번호
$wr_2 = "$tel1-$tel2-$tel3";
$sql2 = " update $write_table set wr_2 = '$wr_2' where wr_id = '$wr_id' ";
sql_query($sql2);
// 주소
$wr_3 = "$ex_zip|$ex_addr1|$ex_addr2|$ex_addr3|$ex_jibeon";
sql_query(" update $write_table set wr_3 = '$wr_3' where wr_id = '$wr_id' ");
if($add_qry )sql_query("update $write_table set $add_qry where wr_id='$wr_id'");

?>
 

이렇게 추가를 한 상태입니다.

 

그런데 게시판에 글작성을 하고 뷰페이지와 수정하게 되면 여분필드의 선택된 값들이 이상하게 뜨고 있어서요...

 

3543063980_1624433832.3738.png

 

이런식으로 오류가 뜨는 상태인데, 문제가 무었인지 알 수 있을까요...? 

이 질문에 댓글 쓰기 :

답변 5

write_update.php 에서 alert 하고 goto_url 부분 주석처리하시고
print_r($_POST); 하셔서 값이 정상적으로 오는지 확인하셔야 할 듯해요.

네. 그리고 보니까 ㅡㅡ;;;;; write_update.skin.php 에 넣으셨네요.
아마 wr_11~50 값이 전달이 안될겁니다. write_update.php 파일이 아니니깐요.

wr_11 = '".$_POST['wr_11']."',
wr_12 = '".$_POST['wr_12']."',
wr_13 = '".$_POST['wr_13']."',
...

이런식으로 변경하시거나 아까 제가 드린 50번까지 소스를 write_update.skin.php 에 응용하셔서 추가해보세요.

wr_11 = '".$_POST['wr_11']."',

이렇게 저장하셔도 되긴 될겁니다. 제가 아까 보내드린 소스는 $wr_11 이렇게 짧게 만들기 위해 그누보드에 기본 내장된 거여서요.

* number_format() 함수 관련 waning 은 파라미터에 숫자형태의 값이 아닌 문자열 형태의 값이 들어갔다는 의미입니다. number_format($view['wr_11']); 같이 썼다면.. $view['wr_11'] 로 변경해야 됩니다. $view['wr_11'] 이 "메이커/코딩" 인 경우..

 

* if($add_qry )sql_query("update $write_table set $add_qry where wr_id='$wr_id'"); 

는 삭제하는게 좋아 보이고..

 

* $wr_1 = "$hp1-$hp2-$hp3";

~

이하 코드는 

write_update.head.skin.php 에 

$wr_1 = "$hp1-$hp2-$hp3";

$wr_2 = "$tel1-$tel2-$tel3";

$wr_3 = "$ex_zip|$ex_addr1|$ex_addr2|$ex_addr3|$ex_jibeon";

의 내용으로만 넣는게 더 좋습니다. 

(write_update.php 에서 업데이트 3번을 추가로 하지 않아도 됩니다.)

 

/bbs/write_update.php 에서 $wr_1 ~ $wr_10 이 업데이트문에 반영되기 때문에..  write_update.head.skin.php 파일에서 변수만 정리해주면 됩니다.

view.skin.php 파일 183,215,227 라인에 에 number_format() 함수에서 값이 전달이 안된 상태인것 같습니다.


덤으로 /bbs/write_update.php 에 아래것도 $i<=50; 이렇게 수정해주셔야 할 것 같습니다.

 

for ($i=1; $i<=10; $i++) {
    $var = "wr_$i";
    $$var = "";
    if (isset($_POST['wr_'.$i]) && settype($_POST['wr_'.$i], 'string')) {
        $$var = trim($_POST['wr_'.$i]);
    }
}
 

for ($i=1; $i<=10; $i++) {
    $var = "wr_$i";
    $$var = "";
    if (isset($_POST['wr_'.$i]) && settype($_POST['wr_'.$i], 'string')) {
        $$var = trim($_POST['wr_'.$i]);
    }

이부분은 어디를 수정해야한다는 말씀이실까요? 함수전달이 왜 안되는지 이해가 안가서요 ㅠㅠ

if($add_qry )sql_query("update $write_table set $add_qry where wr_id='$wr_id'");

는 작동하지 않습니다. 확인하세요

 

view.skin.php 내용에서  number_format 검색해서 확인해보세요

그것은 숫자외에 값이 들어오면 오류가 뜹니다

금액에  , 가 포함되서 디비에 저장했다면 그것을 지우거나, view.skin.php 에서 , 를 제거하는 작업을 먼저 해야합니다


<option value="42000,메이커/코딩" <? if($write['wr_11'] == "메이커/코딩") echo "selected"; ?>>메이커/코딩</option>

옵션값이 이런식으로 되어있는데, 문제있는건가요..?
DB를 확인해보니 값이아예 전달이 안되네요 ㅠ

수정만 50개를 저장하시려는건지 아니면 등록도 저렇게 하시려는건지
등록도 50개 전체를 저장하게 하시려는거면 insert 쪽도 건드려야 하지 않을까요?

그리고 number_format은 int 숫자에만 작동합니다.
한글,영어, 특수문자 전체 안되고 300000 이렇게 숫자만 입력해야 작동합니다.
숫자만 출력하시려면 explode 이용하셔서 분리하신다음에 특수문자 지우시고 number_format() 으로 출력하셔야 되요.

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

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