CI 묻고 답하기

제목 쪽지관련 질문!
글쓴이 초보자임 작성시각 2014/09/12 02:33:50
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 13358   RSS
아무리 생각을 해봐도 잘 모르겠어서 질문드립니다.

쪽지를 ajax를 이용해 보내면 리프레쉬없이 쪽지창에 최신 쪽지하나가 뜨고 
그 쪽지 하나를 누르면 여태까지 쪽지를 한 내용들이 쭉 뜨는 형식인데요

여기서 쪽지는 보냈는데 어떻게 쪽지를 보내고 가장 최근에 보낸 쪽지하나를 띄워놓는지 모르겠습니다.
쪽지 규칙을 생각해봤는데
보내는 사람   ->  받는사람
a  -> b
b  -> a
a  -> c
a  -> d
c  -> a

등등 이런식으로 마구잡이로 db에 들어가있을텐데 여기서 어떻게 
a라는 사람이 b한테 보낸 많은 쪽지중에 최신쪽지
c라는 사람이 a한테 보낸 많은 쪽지중에 최신쪽지
a라는 사람이 d한테 보낸 많은 쪽지중에 최신쪽지  
여기ㅅㅓ a는 저라고 가정을 합니다.
이런식으로 되어있는데 어떻게 저 많은 쪽지중에 최신쪽지만 골라서 하나 띄워놓을수있나요...

ㅈㅔ가 설명을 잘못해서 이해못하셨을 수도 있는데
간단히 말하면 카카오톡같이 최신에 온 데이터가 하나 먼저 뜨고 
그 데이터를 누르면 여태까지 했던 데이터를 누적으로 보여주는거를 말하는겁니다!

혹시 아시는분 계시면 알려주시면 안되나요..ㅠ


 
 다음글 유투브나 여타 링크 때문에 질문 드립니다. (4)
 이전글 사이트 둘러보다가 tank auth를 봤는데 (2)

댓글

들국화 / 2014/09/12 09:33:22 / 추천 0
sorting 을 하면 될것 같은데요.
서두르지 말고 천천히 공부해 보세요.
한대승(불의회상) / 2014/09/12 10:26:23 / 추천 0
시간이 빠졌군요.
시간이 기록되어 있다면 시간을 기준으로 정렬을 하면 되겠죠.
letsgolee / 2014/09/12 10:34:59 / 추천 0
무언가가 최신이라는 것을 알려면 시리얼이 되거나 혹은 입력한 날짜 순으로 정렬이 되면 되겠죠. 예를 든다면 다음과 같은 schema를 했다고 했을 때:
serial | sender |  receiver | title | message | sent | received

여기서 serial은 mysql로 자동으로 increment가 되는 시리얼,
sender는 보내는 사람. 아이디 혹은 아이디에 해당하는 시리얼이 오게 할 수 있을 겁니다.
receiver는 받는 사람. 마찬가지로 아이디 혹은 아이디에 해당하는 시리얼 값이 옵니다.
title은 메시지 제목,
message는 내용,
sent는 보낸 시각,
received는 받은 시각. 이렇게 table을 구성한다고 치면요...

가져올 때에는 
$this->db->where('sender', 'a'); // a라는 사람이 보내었다고 칠 때
$this->db->where('receiver', 'c'); // c라는 사람에게 보내었습니다. 따라서 c는 수신자입니다.
$this->db->where('received', '0000-00-00 00:00:00'); // db에 datetime으로 설정한 경우 기본으로 0000-00-00 00:00:00이 들어갑니다. 이것은 읽지 않은 쪽지를 가져올 때입니다. 이 부분을 없애면 모든 쪽지를 가져오겠죠?
$this->db->order_by('sent desc');// 보낸 시각이 정렬 기준이 되겠죠. 
$this->db->limit(1); // 위에서 하나만 가져온다고 했으니까 리미트를 걸어야죠?
$query = $this->db->get('쪽지 테이블이름');

대부분의 쪽지 구현은 이런 식으로 작성됩니다. 사람마다 조금 다른 방식을 사용하기도 하기 때문에 여기서 응용하면 될 겁니다.
초보자임 / 2014/09/12 18:23:13 / 추천 0
감사합니다! 
1:1로 쪽지를 하고있는상황에서 둘이서 나눈 쪽지들을 누적해서 쭉 보여주는건 알겠는데
받거나 보낸 쪽지중에 최신쪽지를 하나 보여주는 방법을 모르겠어요

예를들어
쪽지가 a한테도 오고, b한테도 오고, c한테도오고
제가 d한테도 보내고, f한테도 보내고, a한테도 보내고 이런식으로 막 섞여있을때
그걸 전부 걸러서 최근에 받거나 보낸 편지 하나를 띄워주는 방법이요..