1052 : … 오류 문제입니다.. > 그누4 질문답변

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 질문답변

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

1052 : … 오류 문제입니다.. 정보

1052 : … 오류 문제입니다..

본문

컨텐츠몰관리 - 회원충전기간관리 에서 이름으로 검색하면 아무문제가 없는데,
회원아이디로 검색을 하면 오류가 뜹니다.. 아무것도 건드린것도 없는데 말이에요;;
도움부탁드려봅니다..(__)

select count(*) as cnt from g4_member a, cont4_member_period b where a.mb_id = b.mb_id and ( (mb_id like 'test%') ) order by mb_datetime desc
1052 : Column: 'mb_id' in where clause is ambiguous
error file : /adm/contents_admin/member_period_list.php

▶ member_period_list.php 소스는 아래와 같습니다..

<?
$sub_menu = "600700";
include_once("./_common.php");

auth_check($auth[$sub_menu], "r");

$sql_common = " from $g4[member_table] a, $g4[cont4_member_period] b ";

$sql_search = " where a.mb_id = b.mb_id ";

if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case "mb_point" :
            $sql_search .= " ($sfl >= '$stx') ";
            break;
        case "mb_level" :
            $sql_search .= " ($sfl = '$stx') ";
            break;
        case "mb_tel" :
        case "mb_hp" :
            $sql_search .= " ($sfl like '%$stx') ";
            break;
        default :
            $sql_search .= " ($sfl like '$stx%') ";
            break;
    }
    $sql_search .= " ) ";
}

if ($is_admin != 'super')
    $sql_search .= " and mb_level <= '$member[mb_level]' ";

if (!$sst) {
    $sst = "mb_datetime";
    $sod = "desc";
}

$sql_order = " order by $sst $sod ";

$sql = " select count(*) as cnt
         $sql_common
         $sql_search
         $sql_order ";
$row = sql_fetch($sql);
$total_count = $row[cnt];

$rows = $config[cf_page_rows];
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

$listall = "<a href='$_SERVER[PHP_SELF]' class=tt>처음</a>";

$g4[title] = "회원충전기간관리";
include_once ("$g4[admin_path]/admin.head.php");

$sql = " select *
          $sql_common
          $sql_search
          $sql_order
          limit $from_record, $rows ";
$result = sql_query($sql);

$colspan = 6;
?>

<script language="javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<script language="JavaScript">
var list_update_php = "member_period_list_update.php";
var list_delete_php = "member_period_list_delete.php";
</script>

<table width=100%>
<form name=fsearch method=get>
<tr>
    <td width=50% align=left><?=$listall?></td>
    <td width=50% align=right>
        <select name=sfl class=cssfl>
            <option value='mb_id'>회원아이디</option>
            <option value='mb_name'>이름</option>
        </select>
        <input type=text name=stx required itemname='검색어' value='<? echo $stx ?>'>
        <input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
</form>
</table>

<form name=fmplist method=post style="margin:0px;">
<input type=hidden name=sst  value='<?=$sst?>'>
<input type=hidden name=sod  value='<?=$sod?>'>
<input type=hidden name=sfl  value='<?=$sfl?>'>
<input type=hidden name=stx  value='<?=$stx?>'>
<input type=hidden name=page value='<?=$page?>'>
<table width=100% cellpadding=0 cellspacing=0>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
    <td width=''><?=subject_sort_link('mb_id')?>회원아이디</a></td>
    <td width=140><?=subject_sort_link('mb_nick')?>별명</a></td>
    <td width=140><?=subject_sort_link('mb_name')?>이름</a></td>
    <td width=140><?=subject_sort_link('mp_last_date', '', 'desc')?>충전기간</a></td>
    <td width=140><?=subject_sort_link('mb_point', '', 'desc')?>포인트</a></td>
    <td width=60><a href="javascript:;" onclick="mp_insert();"><img src='<?=$g4[admin_path]?>/img/icon_insert.gif' border=0 title='등록'></a></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
    $s_upd = "<a href='javascript:;' onclick=\"mp_update('$row[mb_id]', '$row[mp_last_date]');\"><img src='$g4[admin_path]/img/icon_modify.gif' border=0 title='수정'></a>";
    $s_del = "<a href=\"javascript:del('member_period_update.php?w=d&mb_id=$row[mb_id]');\"><img src='$g4[admin_path]/img/icon_delete.gif' border=0 title='삭제'></a>";

    $mb_nick = get_sideview($row[mb_id], $row[mb_nick], $row[mb_email], $row[mb_homepage]);
    $mb_id = $row[mb_id];
    $yoil = get_yoil($row[mp_last_date]);

    $list = $i%2;
    echo "
    <input type=hidden name=mb_id[$i] value='$row[mb_id]'>
    <input type=hidden name=mp_last_date[$i] value='$row[mp_last_date]'>
    <tr class='list$list col1 ht center'>
        <td title='$row[mb_id]'><nobr style='display:block; overflow:hidden; width:90;'> $mb_id</nobr></td>
        <td><nobr style='display:block; overflow:hidden; width:90px;'><u>$mb_nick</u></nobr></td>
        <td><nobr style='display:block; overflow:hidden; width:90px;'>$row[mb_name]</nobr></td>
        <td>$row[mp_last_date] ($yoil)</td>
        <td align=right style='padding-right:50px;'><a href='$g4[admin_path]/point_list.php?sfl=mb_id&stx=$row[mb_id]' class=tt target=_blank>".number_format($row[mb_point])."</a></td>
        <td>$s_upd $s_del</td>
    </tr>";
}

if ($i == 0)
    echo "<tr><td colspan='$colspan' align=center height=100 class=contentbg>자료가 없습니다.</td></tr>";

echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";

$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=50%></td>";
echo "<td width=50% align=right>$pagelist</td></tr></table>\n";

if ($stx)
    echo "<script language='javascript'>document.fsearch.sfl.value = '$sfl';</script>\n";
?>
</form>

<script>
function mp_insert() {
    var f = document.fmpform;
    f.w.value = '';
    f.mb_id.value = '';
    f.mb_id.readOnly = false;
    f.mb_id.style.backgroundColor = '#ffffff';
    f.mp_last_date.value = '';
    f.mp_submit.value = ' 등록 ';
    f.mb_id.focus();
}

function mp_update(mb_id, mp_last_date) {
    var f = document.fmpform;
    f.w.value = 'u';
    f.mb_id.value = mb_id;
    f.mb_id.readOnly = true;
    f.mb_id.style.backgroundColor = '#eeeeee';
    f.mp_last_date.value = mp_last_date;
    f.mp_submit.value = ' 수정 ';
}
</script>

<br>
<form name='fmpform' method='post' action='member_period_update.php' autocomplete='off' style='margin:0px;'>
<input type='hidden' name='w' value=''>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<tr class='bgcol1 col1 ht center'>
    <td width=300>회원아이디 : <input type=text name='mb_id' size=20 maxlength=20 required itemname='회원아이디'></td>
    <td width=300>충전기간 : <input type=text name='mp_last_date' size=20 maxlength=10 minlength=10 required itemname='충전기간'></td>
    <td width=''><input type=submit name='mp_submit' value=' 등록 ' class=btn1 accesskey='s'></td>
</tr>
</table>
</form>

<p>* 충전기간의 날짜는 <?=$g4[time_ymd]?> 와 같은 형식으로 입력하시기 바랍니다.<br>

<?
include_once ("$g4[admin_path]/admin.tail.php");
?>

댓글 전체

if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case "mb_point" :
            $sql_search .= " ($sfl >= '$stx') ";
            break;
        case "mb_level" :
            $sql_search .= " ($sfl = '$stx') ";
            break;
        case "mb_tel" :
        case "mb_hp" :
            $sql_search .= " ($sfl like '%$stx') ";
            break;
        default :
            $sql_search .= " ($sfl like '$stx%') ";
            break;
    }
    $sql_search .= " ) ";
}

부분을

if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case "mb_point" :
            $sql_search .= " ($sfl >= '$stx') ";
            break;
        case "mb_level" :
            $sql_search .= " ($sfl = '$stx') ";
            break;
        case "mb_tel" :
        case "mb_hp" :
            $sql_search .= " ($sfl like '%$stx') ";
            break;
        case "mb_id" :
            $sql_search .= " (a.{$sfl} = '$stx') ";
            break;
        default :
            $sql_search .= " ($sfl like '$stx%') ";
            break;
    }
    $sql_search .= " ) ";
}


이렇게 고쳐보세요.
select count(*) as cnt from g4_member a, cont4_member_period b where a.mb_id = b.mb_id and ( (mb_id like 'test%') ) order by mb_datetime desc
1052 : Column: 'mb_id' in where clause is ambiguous
error file : /adm/contents_admin/member_period_list.php

-> Column: 'mb_id' in where clause is ambiguous 란 문구가 보입니다.
이것은 ( (mb_id like 'test%') ) order by mb_datetime desc 이 sql에서 오류가 난 것입니다.
해결책은 ( (a.mb_id like 'test%') ) order by a.mb_datetime desc
이렇게 "a."이란 alias를 붙여주면 됩니다.

현재 제 그누에는 cont4_member_period 테이블이 없어 따로 테스트를 해보지는 않았지만
명시된 오류코드로 봐선 제시해드린 해결책으로 해결가능할 것이라 봅니다.^^
답변감사합니다.. 그런데, 제가 초보라서 어떻게 적용해야 할지를 모르겠습니다..
앵무나라님이 이해하기 쉽게 답변을 달아주셔서 선택을 하게 되었네요;;
전체 4 |RSS
그누4 질문답변 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 조회
  • 게시물이 없습니다.

회원로그인

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