포인트와 성별 if문...도와주세요 ㅠㅠ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

포인트와 성별 if문...도와주세요 ㅠㅠ 정보

포인트와 성별 if문...도와주세요 ㅠㅠ

본문

if( $sum_point < 2000){ $mb_level = 2; }
if( $sum_point >= 2000 && $member[mb_sex] == "F"){ $mb_level = 4; }
// 2000점이상이고 여자일때 레벨 4
if( $sum_point >= 3000 && $member[mb_sex] == "M"){ $mb_level = 5; }
// 3000점이상이고 남자일때 레벨 5
if( $sum_point >= 5000 && $member[mb_sex] == "M"){ $mb_level = 6; }
if( $sum_point >= 10000 && $member[mb_sex] == "M"){ $mb_level = 7; }
if( $sum_point >= 10000 && $member[mb_sex] == "F"){ $mb_level = 8; }
   
    $sql = " update $g4[member_table] set mb_level = '$mb_level' where mb_id = '$mb_id' ";
    sql_query($sql);


그냥

if($member[mb_sex] =="F" {mb_level = 4' }

테스트 해봐도 적용이 안되네요 머가 잘못된건지 ㅠㅠ

댓글 전체

일단 값들 체크 부터 해보셔야겠네요..

if( $sum_point < 2000){ $mb_level = 2; }  문장 바로 윗라인에 아래의 문장을 넣어  $sum_point, $mb_level, member[mb_sex] 의 값들을 확인합니다.

echo "sum_point = {$sum_point}, mb_level = {$mb_level},  member[mb_sex] = {$member[mb_sex]}"; 

여기서 출력된 값이 정상적이지 않다면 이 라인의 위쪽부분의 소스내용을 봐야 할 수도 있습니다.

위 내용이 이상이 없다면
 $sql = " update $g4[member_table] set mb_level = '$mb_level' where mb_id = '$mb_id' ";  문장 다음 라인에
echo $sql; 하여 쿼리문이 이상이 있는지 체크해서 $g4[member_table], $mb_level, $mb_id 값을 확인 해야 합니다.
// 포인트 부여
function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='')
{
    global $config;
    global $g4;
    global $is_admin;

    // 포인트 사용을 하지 않는다면 return
    if (!$config[cf_use_point]) { return 0; }

    // 포인트가 없다면 업데이트 할 필요 없음
    if ($point == 0) { return 0; }

    // 회원아이디가 없다면 업데이트 할 필요 없음
    if ($mb_id == "") { return 0; }
    $mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
    if (!$mb[mb_id]) { return 0; }

    // 이미 등록된 내역이라면 건너뜀
    if ($rel_table || $rel_id || $rel_action)
    {
        $sql = " select count(*) as cnt from $g4[point_table]
                  where mb_id = '$mb_id'
                    and po_rel_table = '$rel_table'
                    and po_rel_id = '$rel_id'
                    and po_rel_action = '$rel_action' ";
        $row = sql_fetch($sql);
        if ($row[cnt])
            return -1;
    }

    // 포인트 건별 생성
    $sql = " insert into $g4[point_table]
                set mb_id = '$mb_id',
                    po_datetime = '$g4[time_ymdhis]',
                    po_content = '".addslashes($content)."',
                    po_point = '$point',
                    po_rel_table = '$rel_table',
                    po_rel_id = '$rel_id',
                    po_rel_action = '$rel_action' ";
    sql_query($sql);

    // 포인트 내역의 합을 구하고
    $sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
    $row = sql_fetch($sql);
    $sum_point = $row[sum_po_point];

    // 포인트 UPDATE
    $sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
    sql_query($sql);

//자동등업 추가 

  if( $sum_point >= "2000" && $member[mb_sex] =="F"){ $mb_level = 4; }

 $sql = "update g4_member set mb_level = '$mb_level' where mb_id = '$member[mb_id]' ";
 sql_query($sql);

이 내용인데 insert_point(부분에서 잘못된걸까요 ㅠㅠ
일단 소스상에 보면 멤버 정보를 가져오는 부분을 좀 수정하면 될 것 같아 보입니다.

// ============  수정전 ===========================================================
// 회원아이디가 없다면 업데이트 할 필요 없음
    if ($mb_id == "") { return 0; }
    $mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
    if (!$mb[mb_id]) { return 0; }
//================================================================================

// ============  수정후 ===========================================================
// 회원아이디가 없다면 업데이트 할 필요 없음
    if ($mb_id == "") { return 0; }
    $mb = sql_fetch(" select mb_id,mb_sex from $g4[member_table] where mb_id = '$mb_id' ");  // mb_sex 추가
    if (!$mb[mb_id]) { return 0; }
//================================================================================
아 그리고

 if( $sum_point >= "2000" && $member[mb_sex] =="F"){ $mb_level = 4; }
이부분은
if( $sum_point >= "2000" && $mb[mb_sex] =="F"){ $mb_level = 4; }

이렇게 바꿔줘야 겠네요
$sql = "update g4_member set mb_level = '$mb_level' where mb_id = '$member[mb_id]' ";
이것도
 $sql = "update g4_member set mb_level = '$mb_level' where mb_id = '$mb_id' ";

이렇게 바꾸시고 그래도 안된다면
바로 아래부분에 
echo $sql;
로 출력하시켜 출력된 문장을 보여주세요..
아래같이 적용해도 작동을 안하는군요...

// 포인트 내역의 합을 구하고
    $sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
    $row = sql_fetch($sql);
    $sum_point = $row[sum_po_point];
   
    //자동등업 추가
if( $sum_point <= 0){ $mb_level = 2; }
if( $sum_point >= 1){ $mb_level = 3; }

  $sql = " update $g4[member_table] set mb_level = '$mb_level' where mb_id = '$mb_id' ";
    sql_query($sql);

    return 1;


    // 포인트 UPDATE
    $sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
    sql_query($sql);

    return 1;
}
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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