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");
?>
댓글 전체
$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 .= " ) ";
}
이렇게 고쳐보세요.
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 테이블이 없어 따로 테스트를 해보지는 않았지만
명시된 오류코드로 봐선 제시해드린 해결책으로 해결가능할 것이라 봅니다.^^
앵무나라님이 이해하기 쉽게 답변을 달아주셔서 선택을 하게 되었네요;;