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

Copy
<?php

$sql = "select * from ".$g5['point_table']." limit 3"; 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>

$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 포인트
Copy
<?php
$sql = "select * from ".$g5['point_table'];

if (!$is_admin) {

    $sql .= " where mb_id = '".$member['mb_id']."' ";

}

$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>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

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



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



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

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

시퀄에서는 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개

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

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

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

로그인
🐛 버그신고