채택완료

회원아이디 검색 쿼리 질문

현재는 검색을 하면 제목을 인식해서 출력 되는데요.
회원아이디 즉 sfl=mb_id,1&lstx=jamtty 이렇게 주소창에 불러 와서 출력물이  출력 되려면
아래 쿼리를 어떻게 수정해야 될까요 ..


$sql_common = " from {$g5['poll_table']} ";

$sql_search = " where (1) ";
if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        default :
            $sql_search .= " ({$sfl} like '%{$stx}%') ";
            break;
    }
    $sql_search .= " ) ";
}

if (!$sst) {
    $sst  = "po_id";
    $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 < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

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

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
Copy
$sql_search .= " ({$sfl} like '%{$stx}%') ";
Copy
list($field, $opt) = explode(',', $sfl);
$sql_search .= " ({$field} like '%{$stx}%') ";
와 같이 수정해 보시기 바랍니다.
Copy
switch ($sfl) {
        default :
            $sql_search .= " ({$sfl} like '%{$stx}%') ";
            break;
    }

Copy
switch ($sfl) {
       
        case 'mb_id' :
            $sql_search .= " ({$sfl} = '{$stx}') ";
            break;
		default :
            $sql_search .= " ({$sfl} like '{$stx}%') ";
            break;
       
    }
이렇게 수정해서 해결되었습니다.
감사합니다.

답변에 대한 댓글 2개

$sfl = 'mb_id,1' 이기 때문에 where 조건에 넣으면 에러가 발생됩니다.
$sfl = 'mb_id' 이렇게 검색해서 하게 되었어요 ~

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