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개 / 댓글 4개
채택된 답변
+20 포인트
2024-04-06 (토) 00:15:01
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개
2024-04-06 (토) 00:29:14
2024-04-06 (토) 00:36:58
다른 회원의 데이터는 제외 시킨다거나
관리자의 경우 전체를 볼수 있어야 하는 조건들을
하나의 쿼리에서 유동적으로 분기 처리 하기 위해 나누었습니다.
관리자의 경우 전체를 볼수 있어야 하는 조건들을
하나의 쿼리에서 유동적으로 분기 처리 하기 위해 나누었습니다.
2024-04-05 (금) 23:19:55
시퀄에서는 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개
2024-04-06 (토) 00:30:27
감사합니다 많은 도움됬습니다 아래에 if(!$is_admin && $row['mb_id'] !=$member['mb_id']) continue; 사실상 없어도 되고 sql로 불러올수가있네요 많은 도움되었습니다!
답변을 작성하려면 로그인이 필요합니다.
$sql = "select * from ".$g5['point_table']." where mb_id = '".$member['mb_id']."' order by po_datetime desc limit 3 ";
이렇게 한번에 연결해서 써도 될듯 싶은데 배우고자 하는 마음이 커서 궁금한마음에 한번 여쭤봅니다!