채택완료

Undefined variable

2018-10-10 (수) 19:31:57 3,794

<?php
$sql = "select sum(a.od_cart_price) od_cart_price from {$g5['g5_shop_order_table']} a inner join {$g5['member_table']} b on a.mb_id = b.mb_id where a.od_status != '취소' and a.mb_id = '{$member['mb_id']}'"; // 주문상태 취소를 제외,
$row = sql_fetch($sql);
echo $row['od_cart_price']; // 내 총금액
if($member['mb_level'] < 10) {
if($row['od_cart_price'] <= 50000){ //2000 포인트 이하면 권한 2
    $level_up = 2;
}elseif($row['od_cart_price'] <= 100000){
    $level_up = 3;
}elseif($row['od_cart_price'] <= 150000){
    $level_up = 4;
}elseif($row['od_cart_price'] <= 200000){
    $level_up = 5;
}elseif($row['od_cart_price'] <= 250000){
    $level_up = 6;
}elseif($row['od_cart_price'] <= 300000){
    $level_up = 7;
}elseif($row['od_cart_price'] <= 500000){
    $level_up = 8;
}elseif($row['od_cart_price'] <= 1000000){
    $level_up = 9;
}
sql_query(" update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$mb_id' ");
}
?>

이렇게 해서 구매 금액에 따른 회원 등급을 조정하려고 하는데요

빨간색 부분이 오류가 나나봐요

Undefined variable: mb_id in ii.php on line 29

이렇게 나오는데 무슨 문제인가요? ㅠㅠ

|

답변 3개 / 댓글 5개

채택된 답변
+20 포인트

$mb_id 가 정의되지 않았다라는 메시지고 $member['mb_id'] 이걸로 바꿔 사용해보세요

답변에 대한 댓글 1개

정상적으로 잘되네요 감사합니다 ㅠㅠ

sql_query(" update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$mb_id' ");

이부분을

$sql = " update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$mb_id' ";

echo $sql;
sql_query($sql);

출력을 한번 해보시기 바랍니다.

]

g5_member_table 테이블에 mb_id값이 있는지도 확인해보시기 바랍니다.~

맨 윗쪽에 

<?php

include_once("./_common.php");

를 추가하시고

_common.php 파일은

동일레벨의 디렉토리에서 복사해서 

현재 실행되는 파일이 있는 데렉토리에 넣어보세요

답변에 대한 댓글 4개

아 위쪽엔

<?php
include_once('./_common.php');
include_once(G5_THEME_PATH.'/head.php');
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>

로 넣었어요 본문만 가져와서 ㅎㅎ
해당 함수를 echo 했을 땐 정상적으로 표기 됩니다
$mb_id가 정상인경우는

$level_up이 문제일수도 있겠네요

좀더 안정적인 방법은

변수로 대입해서 쿼리를 출력해보는방법도 있습니다.

sql_query(" update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$mb_id' ");
를

$sql = " update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$mb_id' ";

echo $sql;
exit;
로 출력후 실행시켜보세요

그래도 값이 정상인경우

아래와 같이 변경하시고

$sql = " update {$g5['member_table']} set mb_level = '{$level_up}' where mb_id = '{$mb_id}' ";
sql_query($sql);

해보시는게 좋을겁니다.
일단 간단한거부터 해보자 해서 다른 분꺼 먼저 해봤는데 됐어요

친절하게 답변해주셔서 너무 너무 너무 감사합니다

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