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

본인데이터만 출력 질문 채택완료

그누최공 1년 전 조회 23,729

</p>

<p><?php</p>

<p>$sql = "select * from ".$g5['point_table']." limit 3"; desc limit 3";

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

<p>?></p>

<p> </p>

<p><tbody>

        <?php

          for ($i=0; $row=sql_fetch_array($result); $i++) {

            if(!$is_admin && $row['mb_id'] !=$member['mb_id']) continue;

        ?>

        <tr>

          <? if ($is_admin) {?>

            <th><?php echo $row['mb_id']?></th>

          <?}?>

          <th><?php echo $row['po_datetime']?></th>

          <th><?php echo number_format($row['po_point'])?>포인트</th>

          <th><?php echo $row['po_rel_table']?></th>

        </tr>

      </tbody></p>

<p>

 

$sql = "select * from ".$g5['point_table']." where mb_id = ".$member['mb_id']." order by po_datetime desc limit 3";

sql로 최신 3개 글을 뽑아오고 

 

if(!$is_admin && $row['mb_id'] !=$member['mb_id']) continue;

코드로 본인 데이터만 표시되게 했는데

 

이렇게 하니 포인트 테이블에 다른사람데이터가 입력되면 밀려서 하나가 없어지더라구요 

 

제가 설명을 잘 못해서 예를들면

포인트테이블에 a회원과 b회원의 데이터가

1행 a 1000포인트

2행 b 1000포인트

3행 b 1000포인트

4행 b 1000포인트

 

이렇게 데이터가있으면

 

b가 로그인해서 확인하면 최근 3개글 추출로인해

1행에 다른 회원의 데이터가있어서 

아래 2 , 3행 데이터 2개만 표시되더라구요

 

다른회원의 데이터는 완전히 제외시키고 본인글만 보여지게 뽑아오는 방법은 없을까요?

도움 부탁드립니다!

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

답변 2개

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

</p>

<p><?php

$sql = "select * from ".$g5['point_table'];</p>

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

<p>    $sql .= " where mb_id = '".$member['mb_id']."' ";</p>

<p>}</p>

<p>$sql .= " order by po_datetime desc limit 3 ";

$result = sql_query($sql);

?>

 

<tbody>

        <?php

          for ($i=0; $row=sql_fetch_array($result); $i++) {

            //if(!$is_admin && $row['mb_id'] !=$member['mb_id']) continue;

        ?>

        <tr>

          <? if ($is_admin) {?>

            <th><?php echo $row['mb_id']?></th>

          <?}?>

          <th><?php echo $row['po_datetime']?></th>

          <th><?php echo number_format($row['po_point'])?>포인트</th>

          <th><?php echo $row['po_rel_table']?></th>

        </tr>

      </tbody></p>

<p>

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

답변에 대한 댓글 3개

그누최공
1년 전
정말감사합니다 ! 그런데 저렇게 나눠쓰는 이유가있을까요?



$sql = "select * from ".$g5['point_table']." where mb_id = '".$member['mb_id']."' order by po_datetime desc limit 3 ";



이렇게 한번에 연결해서 써도 될듯 싶은데 배우고자 하는 마음이 커서 궁금한마음에 한번 여쭤봅니다!
배르만
1년 전
다른 회원의 데이터는 제외 시킨다거나
관리자의 경우 전체를 볼수 있어야 하는 조건들을
하나의 쿼리에서 유동적으로 분기 처리 하기 위해 나누었습니다.
그누최공
1년 전
아 그런거군요 답변 너무 감사합니다 덕분에 한걸음 나아간 기분이네요 ㅎㅎ

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

시퀄에서는 3개를 가져오는데

$sql = "select * from ".$g5['point_table']." where mb_id = ".$member['mb_id']." order by po_datetime desc limit 3";

 

이 아래에서

          for ($i=0; $row=sql_fetch_array($result); $i++) {
            if(!$is_admin && $row['mb_id'] !=$member['mb_id']) continue;

 

이런식으로 밑에서 다른 조건을 걸어 쓰면 당연히 밀려 나올수 밖어 없습니다.

맨 위에 시퀄에 조건을 심플하고 정확하게 작성해야지만 id = b 의 포인트 결제과를 가져올수 있는 것입니다.

 

 

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

답변에 대한 댓글 1개

그누최공
1년 전
감사합니다 많은 도움됬습니다 아래에 if(!$is_admin && $row['mb_id'] !=$member['mb_id']) continue; 사실상 없어도 되고 sql로 불러올수가있네요 많은 도움되었습니다!

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

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

로그인