테스트 사이트 - 개발 중인 베타 버전입니다

포인트 조회에서 회원명으로 검색할려면 어떻게 해야 하나요? 채택완료

밀랍 3년 전 조회 1,526

포인트조회 point_list.php 에 보면

아이디 또는 내용으로만 조회가 가능하던데

닉네임 또는 이름으로 검색할려면 어떻게 해야 하나요?

 

</p>

<p>

$sql_common = " from {$g5['point_table']} ";</p>

<p>$sql_search = " where (1) ";</p>

<p>if ($stx) {

    $sql_search .= " and ( ";

    switch ($sfl) {

        case 'mb_id' :

            $sql_search .= " ({$sfl} = '{$stx}') ";

            break;

        default :

            $sql_search .= " ({$sfl} like '%{$stx}%') ";

            break;

    }

    $sql_search .= " ) ";

}</p>

<p>if (!$sst) {

    $sst  = "po_id";

    $sod = "desc";

}

$sql_order = " order by {$sst} {$sod} ";</p>

<p>$sql = " select count(*) as cnt

            {$sql_common}

            {$sql_search}

            {$sql_order} ";

$row = sql_fetch($sql);

$total_count = $row['cnt'];</p>

<p>$rows = $config['cf_page_rows'];

$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산

if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)

$from_record = ($page - 1) * $rows; // 시작 열을 구함</p>

<p>$sql = " select *

            {$sql_common}

            {$sql_search}

            {$sql_order}

            limit {$from_record}, {$rows} ";

$result = sql_query($sql);</p>

<p>$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>';</p>

<p>$mb = array();

if ($sfl == 'mb_id' && $stx)

    $mb = get_member($stx);</p>

<p>$g5['title'] = '선입금관리';

include_once ('./admin.head.php');

// include_once('./point_sub.php');

$colspan = 9;</p>

<p>$po_expire_term = '';

if($config['cf_point_term'] > 0) {

    $po_expire_term = $config['cf_point_term'];

}</p>

<p>if (strstr($sfl, "mb_id"))

    $mb_id = $stx;

else

    $mb_id = "";</p>

<p>

 

</p>

<p><select name="sfl" id="sfl">

    <option value="mb_name"<?php echo get_selected($sfl, "mb_name"); ?>>회원명</option>

    <option value="mb_id"<?php echo get_selected($sfl, "mb_id"); ?>>회원아이디</option>

    <option value="po_content"<?php echo get_selected($sfl, "po_content"); ?>>내용</option>

</select></p>

<p>

 

어떻게 수정해야 회원이름으로 검색할 수 있는지 궁금합니다.

 

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

답변 3개

채택된 답변
+20 포인트
3년 전

</p>

<p>if ($stx) {

    $sql_search .= " and ( ";

    switch ($sfl) {

        case 'mb_id' :

            $sql_search .= " ({$sfl} = '{$stx}') ";

            break;

        case 'mb_name' :

            $sql_search .= " mb_id in (select mb_id from {$g5['member_table']} where mb_name like '%{$stx}%') ";

            break;

        default :

            $sql_search .= " ({$sfl} like '%{$stx}%') ";

            break;

    }

    $sql_search .= " ) ";

}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

밀랍
3년 전
답변감사합니다.

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

포이치
3년 전

포인트 테이블엔 이름이나 닉네임 필드가 없으므로,

g5_member 테이블을 조인걸어주셔야 합니다.

 

point_list.php 수정

 

</p>

<p><?php</p>

<p>$sub_menu = "200200";</p>

<p>include_once('./_common.php');</p>

<p> </p>

<p>auth_check_menu($auth, $sub_menu, 'r');</p>

<p> </p>

<p>$sql_common = " from {$g5['point_table']} a left join {$g5['member_table']} b</p>

<p> </p>

<p>on (a.mb_id=b.mb_id) ";</p>

<p> </p>

<p>$sql_search = " where (1) ";</p>

<p> </p>

<p>if ($stx) {</p>

<p>    $sql_search .= " and ( ";</p>

<p>    switch ($sfl) {</p>

<p>        case 'a.mb_id' :</p>

<p>            $sql_search .= " ({$sfl} = '{$stx}') ";</p>

<p>            break;</p>

<p>        default :</p>

<p>            $sql_search .= " ({$sfl} like '%{$stx}%') ";</p>

<p>            break;</p>

<p>    }</p>

<p>    $sql_search .= " ) ";</p>

<p>}</p>

<p> </p>

<p>if (!$sst) {</p>

<p>    $sst  = "a.po_id";</p>

<p>    $sod = "desc";</p>

<p>}</p>

<p>$sql_order = " order by {$sst} {$sod} ";</p>

<p>

 </p>

<p>$sql = " select count(*) as cnt</p>

<p>            {$sql_common}</p>

<p>            {$sql_search}</p>

<p>            {$sql_order} ";</p>

<p>$row = sql_fetch($sql);</p>

<p>$total_count = $row['cnt'];</p>

<p> </p>

<p>$rows = $config['cf_page_rows'];</p>

<p>$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산</p>

<p>if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)</p>

<p>$from_record = ($page - 1) * $rows; // 시작 열을 구함</p>

<p> </p>

<p>$sql = " select *</p>

<p>            {$sql_common}</p>

<p>            {$sql_search}</p>

<p>            {$sql_order}</p>

<p>            limit {$from_record}, {$rows} ";</p>

<p> </p>

<p>            echo $sql;</p>

<p>$result = sql_query($sql);</p>

<p> </p>

<p>$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>';</p>

<p> </p>

<p>$mb = array();</p>

<p>if ($sfl == 'mb_id' && $stx)</p>

<p>    $mb = get_member($stx);</p>

<p> </p>

<p>$g5['title'] = '포인트관리';</p>

<p>include_once ('./admin.head.php');</p>

<p> </p>

<p>$colspan = 9;</p>

<p> </p>

<p>$po_expire_term = '';</p>

<p>if($config['cf_point_term'] > 0) {</p>

<p>    $po_expire_term = $config['cf_point_term'];</p>

<p>}</p>

<p> </p>

<p>if (strstr($sfl, "mb_id"))</p>

<p>    $mb_id = $stx;</p>

<p>else</p>

<p>    $mb_id = "";</p>

<p>?></p>

<p> </p>

<p><div class="local_ov01 local_ov"></p>

<p>    <?php echo $listall ?></p>

<p>    <span class="btn_ov01"><span class="ov_txt">전체 </span><span class="ov_num"> <?php echo number_format($total_count) ?> 건 </span></span></p>

<p>    <?php</p>

<p>    if (isset($mb['mb_id']) && $mb['mb_id']) {</p>

<p>        echo ' <span class="btn_ov01"><span class="ov_txt">' . $mb['mb_id'] .' 님 포인트 합계 </span><span class="ov_num"> ' . number_format($mb['mb_point']) . '점</span></span>';</p>

<p>    } else {</p>

<p>        $row2 = sql_fetch(" select sum(po_point) as sum_point from {$g5['point_table']} ");</p>

<p>        echo ' <span class="btn_ov01"><span class="ov_txt">전체 합계</span><span class="ov_num">'.number_format($row2['sum_point']).'점 </span></span>';</p>

<p>    }</p>

<p>    ?></p>

<p></div></p>

<p> </p>

<p><form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get"></p>

<p><label for="sfl" class="sound_only">검색대상</label></p>

<p><select name="sfl" id="sfl"></p>

<p>    <option value="b.mb_name"<?php echo get_selected($sfl, "b.mb_name"); ?>>회원명</option></p>

<p>    <option value="b.mb_nick"<?php echo get_selected($sfl, "b.mb_nick"); ?>>닉네임</option></p>

<p>    <option value="a.mb_id"<?php echo get_selected($sfl, "a.mb_id"); ?>>회원아이디</option></p>

<p>    <option value="a.po_content"<?php echo get_selected($sfl, "a.po_content"); ?>>내용</option></p>

<p></select></p>

<p><label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label></p>

<p><input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input"></p>

<p><input type="submit" class="btn_submit" value="검색"></p>

<p></form></p>

<p> </p>

<p><form name="fpointlist" id="fpointlist" method="post" action="./point_list_delete.php" onsubmit="return fpointlist_submit(this);"></p>

<p><input type="hidden" name="sst" value="<?php echo $sst ?>"></p>

<p><input type="hidden" name="sod" value="<?php echo $sod ?>"></p>

<p><input type="hidden" name="sfl" value="<?php echo $sfl ?>"></p>

<p><input type="hidden" name="stx" value="<?php echo $stx ?>"></p>

<p><input type="hidden" name="page" value="<?php echo $page ?>"></p>

<p><input type="hidden" name="token" value=""></p>

<p> </p>

<p><div class="tbl_head01 tbl_wrap"></p>

<p>    <table></p>

<p>    <caption><?php echo $g5['title']; ?> 목록</caption></p>

<p>    <thead></p>

<p>    <tr></p>

<p>        <th scope="col"></p>

<p>            <label for="chkall" class="sound_only">포인트 내역 전체</label></p>

<p>            <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"></p>

<p>        </th></p>

<p>        <th scope="col"><?php echo subject_sort_link('mb_id') ?>회원아이디</a></th></p>

<p>        <th scope="col">이름</th></p>

<p>        <th scope="col">닉네임</th></p>

<p>        <th scope="col"><?php echo subject_sort_link('po_content') ?>포인트 내용</a></th></p>

<p>        <th scope="col"><?php echo subject_sort_link('po_point') ?>포인트</a></th></p>

<p>        <th scope="col"><?php echo subject_sort_link('po_datetime') ?>일시</a></th></p>

<p>        <th scope="col">만료일</th></p>

<p>        <th scope="col">포인트합</th></p>

<p>    </tr></p>

<p>    </thead></p>

<p>    <tbody></p>

<p>    <?php</p>

<p>    for ($i=0; $row=sql_fetch_array($result); $i++) {</p>

<p>        if ($i==0 || ($row2['mb_id'] != $row['mb_id'])) {</p>

<p>            $sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g5['member_table']} where mb_id = '{$row['mb_id']}' ";</p>

<p>            $row2 = sql_fetch($sql2);</p>

<p>        }</p>

<p> </p>

<p>        $mb_nick = get_sideview($row['mb_id'], $row2['mb_nick'], $row2['mb_email'], $row2['mb_homepage']);</p>

<p> </p>

<p>        $link1 = $link2 = '';</p>

<p>        if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table']) {</p>

<p>            $link1 = '<a href="'.get_pretty_url($row['po_rel_table'], $row['po_rel_id']).'" target="_blank">';</p>

<p>            $link2 = '</a>';</p>

<p>        }</p>

<p> </p>

<p>        $expr = '';</p>

<p>        if($row['po_expired'] == 1)</p>

<p>            $expr = ' txt_expired';</p>

<p> </p>

<p>        $bg = 'bg'.($i%2);</p>

<p>    ?></p>

<p> </p>

<p>    <tr class="<?php echo $bg; ?>"></p>

<p>        <td class="td_chk"></p>

<p>            <input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>" id="mb_id_<?php echo $i ?>"></p>

<p>            <input type="hidden" name="po_id[<?php echo $i ?>]" value="<?php echo $row['po_id'] ?>" id="po_id_<?php echo $i ?>"></p>

<p>            <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['po_content'] ?> 내역</label></p>

<p>            <input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>"></p>

<p>        </td></p>

<p>        <td class="td_left"><a href="?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td></p>

<p>        <td class="td_left"><?php echo get_text($row2['mb_name']); ?></td></p>

<p>        <td class="td_left sv_use"><div><?php echo $mb_nick ?></div></td></p>

<p>        <td class="td_left"><?php echo $link1 ?><?php echo $row['po_content'] ?><?php echo $link2 ?></td></p>

<p>        <td class="td_num td_pt"><?php echo number_format($row['po_point']) ?></td></p>

<p>        <td class="td_datetime"><?php echo $row['po_datetime'] ?></td></p>

<p>        <td class="td_datetime2<?php echo $expr; ?>"></p>

<p>            <?php if ($row['po_expired'] == 1) { ?></p>

<p>            만료<?php echo substr(str_replace('-', '', $row['po_expire_date']), 2); ?></p>

<p>            <?php } else echo $row['po_expire_date'] == '9999-12-31' ? ' ' : $row['po_expire_date']; ?></p>

<p>        </td></p>

<p>        <td class="td_num td_pt"><?php echo number_format($row['po_mb_point']) ?></td></p>

<p>    </tr></p>

<p> </p>

<p>    <?php</p>

<p>    }</p>

<p> </p>

<p>    if ($i == 0)</p>

<p>        echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';</p>

<p>    ?></p>

<p>    </tbody></p>

<p>    </table></p>

<p></div></p>

<p> </p>

<p><div class="btn_fixed_top"></p>

<p>    <input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02"></p>

<p></div></p>

<p> </p>

<p></form></p>

<p> </p>

<p><?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?></p>

<p> </p>

<p><section id="point_mng"></p>

<p>    <h2 class="h2_frm">개별회원 포인트 증감 설정</h2></p>

<p> </p>

<p>    <form name="fpointlist2" method="post" id="fpointlist2" action="./point_update.php" autocomplete="off"></p>

<p>    <input type="hidden" name="sfl" value="<?php echo $sfl ?>"></p>

<p>    <input type="hidden" name="stx" value="<?php echo $stx ?>"></p>

<p>    <input type="hidden" name="sst" value="<?php echo $sst ?>"></p>

<p>    <input type="hidden" name="sod" value="<?php echo $sod ?>"></p>

<p>    <input type="hidden" name="page" value="<?php echo $page ?>"></p>

<p>    <input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>"></p>

<p> </p>

<p>    <div class="tbl_frm01 tbl_wrap"></p>

<p>        <table></p>

<p>        <colgroup></p>

<p>            <col class="grid_4"></p>

<p>            <col></p>

<p>        </colgroup></p>

<p>        <tbody></p>

<p>        <tr></p>

<p>            <th scope="row"><label for="mb_id">회원아이디<strong class="sound_only">필수</strong></label></th></p>

<p>            <td><input type="text" name="mb_id" value="<?php echo $mb_id ?>" id="mb_id" class="required frm_input" required></td></p>

<p>        </tr></p>

<p>        <tr></p>

<p>            <th scope="row"><label for="po_content">포인트 내용<strong class="sound_only">필수</strong></label></th></p>

<p>            <td><input type="text" name="po_content" id="po_content" required class="required frm_input" size="80"></td></p>

<p>        </tr></p>

<p>        <tr></p>

<p>            <th scope="row"><label for="po_point">포인트<strong class="sound_only">필수</strong></label></th></p>

<p>            <td><input type="text" name="po_point" id="po_point" required class="required frm_input"></td></p>

<p>        </tr></p>

<p>        <?php if($config['cf_point_term'] > 0) { ?></p>

<p>        <tr></p>

<p>            <th scope="row"><label for="po_expire_term">포인트 유효기간</label></th></p>

<p>            <td><input type="text" name="po_expire_term" value="<?php echo $po_expire_term; ?>" id="po_expire_term" class="frm_input" size="5"> 일</td></p>

<p>        </tr></p>

<p>        <?php } ?></p>

<p>        </tbody></p>

<p>        </table></p>

<p>    </div></p>

<p> </p>

<p>    <div class="btn_confirm01 btn_confirm"></p>

<p>        <input type="submit" value="확인" class="btn_submit btn"></p>

<p>    </div></p>

<p> </p>

<p>    </form></p>

<p> </p>

<p></section></p>

<p> </p>

<p><script></p>

<p>function fpointlist_submit(f)</p>

<p>{</p>

<p>    if (!is_checked("chk[]")) {</p>

<p>        alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");</p>

<p>        return false;</p>

<p>    }</p>

<p> </p>

<p>    if(document.pressed == "선택삭제") {</p>

<p>        if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {</p>

<p>            return false;</p>

<p>        }</p>

<p>    }</p>

<p> </p>

<p>    return true;</p>

<p>}</p>

<p></script></p>

<p> </p>

<p><?php</p>

<p>include_once ('./admin.tail.php');</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

밀랍
3년 전
답변 감사합니다.

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

그누위즈

포인트 테이블에는 회원이름 또는 닉네임이 없습니다.

따라서 최상위 쿼리구문에서

member 테이블을 join해서 가져와야합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

밀랍
3년 전
답변 감사합니다.

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

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

로그인