쪽지부분 sql 질문이요~
본문
받는쪽지, 보낸쪽지를 구분하지 않고 한번에 통합시키려고 합니다
여차저차 삽질을 해서
$sql = "select * from
(select a.*, CONCAT(me_send_mb_id, ' to ',me_recv_mb_id) as test1
from g5_memo a where a.me_recv_mb_id = '{$member[mb_id]}' or a.me_send_mb_id = '{$member[mb_id]}'
order by a.me_id desc) as memo group by test1 order by memo.me_id desc";
이렇게 리스트를 불러왔는데
서로 쪽지를 주고받았다면 A가 B에게 보낸 쪽지, B가 A에게 보낸쪽지 총 2개가 출력되더라구요
for($i=0; $i<count($memo); $i++) {
if($memo[$i][me_send_mb_id] == $memo[$i][me_recv_mb_id]) continue;
if($memo[$i][me_send_mb_id] == $member[mb_id]) {
$temp[$i] = $memo[$i][me_recv_mb_id];
for($j=0; $j<count($memo); $j++) {
if($memo[$j][me_send_mb_id] == $temp[$i]) {
$i_datetime = strtotime($memo[$i][me_send_datetime]);
$j_datetime = strtotime($memo[$j][me_send_datetime]);
if($i_datetime > $j_datetime) {
array_push($del_memo, $j);
} else if($i_datetime < $j_datetime) {
array_push($del_memo, $i);
}
}
}
}
}
for($i=0; $i<count($del_memo); $i++) {
unset($memo[$del_memo[$i]]);
}
$memo = array_values($memo);
그래서 위 코드로 php상에서 쪽지 발송시간을 기준으로 더 오래된 쪽지는 삭제해서 중복을 제거했는데요.
이렇게 겨우 만들긴했는데 쪽지의 양이 많을경우엔 속도가 너무 느려가지고
페이징처리를 하려고하는데요
sql에서 정리를해서 받아오는게아니라 php에서 정리를 하기때문에
sql 상에서 count로 전체레코드 갯수 받아오는거랑 리스트에 들어있는 쪽지들 갯수랑 맞지가 않아서 페이징처리가 힘드네요
php로 중복제거할 필요 없이 sql로만 중복되는걸 제외하고 불러올수 있을까요?
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.