주문내역에서 회원 여분필드 mb_1 검색하면 한개만 나옵니다 다 나오게 부탁드립니다.

주문내역에서 회원 여분필드 mb_1 검색하면 한개만 나옵니다 다 나오게 부탁드립니다.

QA

주문내역에서 회원 여분필드 mb_1 검색하면 한개만 나옵니다 다 나오게 부탁드립니다.

본문

지난번 질답으로 도움받아서

orderlist.php 주문내역 파일에 회원 여유필드 mb_1이 출력되도록 사용하고 있습니다.

 

이번에는 orderlist.php 주문내역에서 추가된 mb_1이 검색되도록 하고 싶습니다.

질문답변 검색해서 다른 회원님 글을 참조해서 닉네임 검사하는 소스를 변형해서 넣었습니다.

 

 

 

$sql_search = "";
if ($search != "") {
    if ($sel_field != "") {

if ($sel_field == 'mb_1'){
        $res = sql_fetch("select mb_id from {$g5['member_table']} where mb_1 like '%".$search."%'");
        $where[] = " mb_id = '{$res['mb_id']}' ";
      }else{
      
        $where[] = " $sel_field like '%$search%' ";
         }
    }

    if ($save_search != $search) {
        $page = 1;
    }
}


검색

<option value="mb_1" <?php echo get_selected($sel_field, 'mb_1'); ?>>친구</option>

 

이렇게 넣었는데... 검색하면

나오긴 나오는데 딱 1개만 나옵니다.

같은 값을 가진 회원이 수십명이 있는데 딱 한사람만 검색되어 나옵니다.

 

같은 값을 가진 회원이 검색창이 다 나올 수 있도록 봐 주셨으면 합니다.

감사합니다.

이 질문에 댓글 쓰기 :

답변 2

$sql_common = " from {$g5['g5_shop_order_table']} $sql_search ";
을 
$sql_common = " from {$g5['g5_shop_order_table']} T1 left join {$g5['member_table']} T2 on T1.mb_id= T2.mb_id $sql_search ";
로 수정하시고 

<option value="T2.mb_1" <?php echo get_selected($sel_field, 'T2.mb_1'); ?>>친구</option>
이런식으로 하면 되지 않을까요?

$where이 결국 $sql로 묶어서 선언하셨겠죠?

그러면 아래와 같이 option을 for문으로 돌리셔야 배열이 나오겠죠.



<?php
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
?>
<option value="mb_1" <?php echo get_selected($sel_field, 'mb_1'); ?>>친구</option>
<?php } ?>

 

질문하신 의도가 이게 맞는지 모르겠지만..

혹시 for문을 돌리셨는데도 그러하다면 $sql에 limit가 설정되어 있는지도 확인해보세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 14
QA 내용 검색

회원로그인

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