채택완료

A 테이블 셀렉트 후 mb_id값 비교해서 다시 B테이블 셀렉트 하는 방법좀요 ㅠ

$sql_choice = " select * from g5_write_choice where wr_1 = '3' ";
$result_choice = sql_query($sql_choice); 
$row_choice=sql_fetch_array($result_choice);

>>> g5_write_choice 테이블에서 wr_1 값이 3인거만 추출합니다.

 

 

$sql = " select * from g5_write_plana_refund2 where mb_id = '$row_choice[mb_id]' and wr_datetime BETWEEN date('2021-07-31 00:00:00') and date('2021-08-13 23:59:59')+1 and wr_10 = '1' ";
$result = sql_query($sql); 

>>> g5_write_choice 테이블에서 추출한값을 mb_id 아이디를 비교해서 동일한 아이디 있는거만 나오게 합니다.

 


for ($i=0; $row=sql_fetch_array($result); $i++) {
$row[mb_id]
}

>>>> 이렇게 했더니 값이 하나만 나옵니다. ㅠㅠ 테이블 값 열어보면 수십개 값이 있는데 말이죠 ㅠㅠ

 

 

왜 그럴가요?

|

답변 3개 / 댓글 1개

채택된 답변
+20 포인트

Copy
$sql_choice = " select distinct mb_id from g5_write_choice where wr_1 = '3' ";
$result_choice = sql_query($sql_choice); 

wihle ($row_choice=sql_fetch_array($result_choice)) {

    $sql = " select * from g5_write_plana_refund2

                where mb_id = '{$row_choice['mb_id']}'

                    and wr_datetime BETWEEN date('2021-07-31 00:00:00')

                    and date('2021-08-13 23:59:59')+1 and wr_10 = '1' ";
    $result = sql_query($sql); 

    for ($i=0; $row=sql_fetch_array($result); $i++) {
        echo $row['mb_id'];

        
    }

}

 

g5_write_choice 테이블에서 mb_id 기준으로 중복제거해서 

mb_id에 해당되는 값들을 기준으로  g5_write_plana_refund2 에서

추출해서 처리를 하면됩니다.

답변에 대한 댓글 1개

돌리니까 에러가 나네욤 ㅠㅠ

 date('2021-08-13 23:59:59')+1<--- date는 무엇이며 +1은 무엇인가요?

다음처럼 해보세요

 

$rowk = sql_fetch(" select group_concat(DISTINCT mb_id) as mbid from g5_write_choice where wr_1 = '3' ");
$idStr = "'".str_replace(',', "','", $rowk['mbid'])."'";

 

$date1 = ''2021-07-31 00:00:00';
$date2 = "2021-08-13 23:59:59";
$result = sql_query(" select * from g5_write_plana_refund2 where mb_id IN($idStr) and wr_datetime BETWEEN $date1 and $date2 and wr_10 = '1' "); 
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo $row[mb_id];
}

 

$row, $result 변수가 중복되는 건 아닐까요?

소스 전체를 올려 보세요.

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