질문

질문

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

질문

본문

2826885174_1552633590.0265.png

 

카테고리별로 포인트를 지정하게 해주려는데 값 을 못받아오네요..

 


<?php
$categories = explode('|', $row['bo_category_list']);
for ($j=0; $j<count($categories); $j++) {
    $category = trim($categories[$j]);
    $cp = sql_fetch(" select * from g5_category_point where bo_category_name = '{$category}' and bo_table = '{$row['bo_table']}' ");

    if ($category == '') continue;
?>
<tr class="<?php echo $bg; ?>">
    <td colspan="5"></td>
    <td style="text-align:left">카테고리: <?php echo $category ?></td>
    <td class="td_numsmall">
        <label for="category_read_point_<?php echo $j; ?>" class="sound_only">읽기 포인트</label>
        <input type="text" name="category_read_point[<?php echo $j ?>]" value="<?php echo $cp['bo_read_point'] ?>" id="category_read_point" class="tbl_input" size="2">
    </td>
    <td class="td_numsmall">
        <label for="category_write_point_<?php echo $j; ?>" class="sound_only">쓰기 포인트</label>
        <input type="text" name="category_write_point[<?php echo $j ?>]" value="<?php echo $cp['bo_write_point'] ?>" id="category_read_point" class="tbl_input" size="2">
    </td>
    <td class="td_numsmall">
        <label for="category_comment_point_<?php echo $j; ?>" class="sound_only">댓글 포인트</label>
        <input type="text" name="category_comment_point[<?php echo $j ?>]" value="<?php echo $cp['bo_comment_point'] ?>" id="category_read_point" class="tbl_input" size="2">
    </td>
    <td class="td_numsmall">
        <label for="category_download_point_<?php echo $j; ?>" class="sound_only">다운<br>포인트</label>
        <input type="text" name="category_download_point[<?php echo $j ?>]" value="<?php echo $cp['bo_download_point'] ?>" id="category_read_point" class="tbl_input" size="2">
    </td>
    <td colspan="6"></td>
</tr>
<?php } ?>


 

원인을 찾아보니까 name 부분에서 배열처리부분에 $j 가 들어가는데 저부분인거같은데 잘 모르겠네요..

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 2

채택됨

onlymilk47님의 답변

while 이나 for로 $row 값을 얻는 곳 외부 위쪽에 
$category_i=0; 으로 지정해 주시고 


$categories = explode('|', $row['bo_category_list']);
for ($j=0; $j<count($categories); $j++) {
    $category = trim($categories[$j]);
    $cp = sql_fetch(" select * from g5_category_point where bo_category_name = '{$category}' and bo_table = '{$row['bo_table']}' ");

    if ($category == '') continue;

   ?>
   <tr class="<?php echo $bg; ?>">
    <td colspan="5"></td>
    <td style="text-align:left">카테고리: <?php echo $category ?>
    <!-- 여기추가 -->
    <input type="hidden" name="cate_bo_table[<?php echo $category_i;?>]" value="<?php echo $row['bo_table'];?>">
    <input type="hidden" name="bo_category_name[<?php echo $category_i;?>]" value="<?php echo $category;?>">
    <!-- 여기 추가  -->
    </td>
    
    $j 를  $category_i 로 변경해 주시고 for 문 하단분에 $category_i++ 를 추가해 주십니다

    <td class="td_numsmall">
        <label for="category_download_point_<?php echo $category_i; ?>" class="sound_only">다운<br>포인트</label>
        <input type="text" name="category_download_point[<?php echo $category_i ?>]" value="<?php echo $cp['bo_download_point'] ?>" id="category_read_point" class="tbl_input" size="2">
    </td>
    <td colspan="6"></td>
</tr>
<?php 

    //for 문안에 추가
    $category_i++;     

?>


update나 추가 부분에 

 <input type="hidden" name="cate_bo_table[<?php echo $category_i;?>]" value="<?php echo $row['bo_table'];?>">
    <input type="hidden" name="bo_category_name[<?php echo $category_i;?>]" value="<?php echo $category;?>">

$counter = count($cate_bo_table); 
for($m=0;$m<$counter;$m++)
{
    $cp = sql_fetch(" select count(*) as cnt from g5_category_point where bo_category_name = '".$bo_category_name[$m]."' and bo_table = '".$cate_bo_table[$m]."' ");
    if($cp[cnt]){
        //내용을 업데이트 한다
        $sql = "update g5_category_point set 
        ... 
        where bo_category_name = '".$bo_category_name[$m]."' 
        and bo_table = '".$cate_bo_table[$m]."' ";
        sql_query($sql);
    }
    else{
        //내용을 등록한다
        $sql = "insert into g5_category_point set 
        ....
        bo_category_name = '".$bo_category_name[$m]."',  
        bo_table = '".$cate_bo_table[$m]."' ";
        sql_query($sql);
    }
}
형식으로 처리하시면 되실듯 합니다

주소복사
채택됨
답변의 댓글

LukcyHoo님의 답변

값을 불러오는 부분은 문제가 없어보이는데 혹시 디비에서 값을 불러오는 부분에 잘못된것이 아닌가요?

 

  $cp = sql_fetch(" select * from g5_category_point where bo_category_name = '{$category}' and bo_table = '{$row['bo_table']}' ");
var_dump($cp);

로 값을 제대로 불러올수있는지를 체크해보셔야 할듯합니다.

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 74,620 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. ISPCONFIG 3 PRO 자동설치 스크립트

    참여35 회 시작19.05.21 10:11 종료19.05.28 10:11

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT