클

최신글 랜덤 겹치지 않고 뽑는법?

· 2012-07-11 (수) 21:15:55 · 1534 · 5
탭으로 한개의 게시판에서 순차적으로 게시물을 뽑아오는데.. 지금의 경우 wr_id로 순차적으로 쭉 뽑아와서 첫탭 ,두째탭, 셋째탭에 뿌려줍니다.
예를들어 7개를 하나의 탭에서 뿌려주면 21개를 불러와 7개씩 뿌려주는데요..

21개를 한번에 랜덤으로 불러와서 7개씩 뿌려주고 싶습니다.
order by rand() 를 사용하면 7개내에서만 섞이고 하나의 탭에서만 바뀌게 됩니다.
그렇다고 limit 를 21개로 불러와버리면 3개탭중 중복되는것이 껴버립니다.

중복없이 21개를 3개의 탭에 나눠서 뿌려주려면 어떻게 해야할까요? 이리저리 해봐도 해결하지 못해 도움 부탁드려봅니다.


<div id="side_list1_tab1" style="display:inline;">
// 출력갯수
$rows = "7";
....
$sql = " * from {$g4[write_prefix]}{$tmp_table} where wr_is_comment = '0' order by wr_id desc limit 0, $rows ";
....
</div>

<div id="side_list1_tab2" style="display:inline;">
// 출력갯수
$rows = "7";
....
$sql = " select * from {$g4[write_prefix]}{$tmp_table} where wr_is_comment = '0' order by wr_id desc limit $rows, $rows ";
....
</div>

<div id="side_list1_tab3" style="display:inline;">
// 출력갯수
$rows = "7";
....
$sql = " * from {$g4[write_prefix]}{$tmp_table} where wr_is_comment = '0' order by wr_id desc limit ".(int)($rows * 2).", $rows ";
....
</div>
|

댓글 5개

select * from (
select * from {$g4[write_prefix]}{$tmp_table} where wr_is_comment = '0' order by wr_id desc limit 0, 21)A order by rand() limit 7

이런식으로 괄호를 하나 더 싸서 랜덤으로 7개만 뽑으시면 됩니다.

참고로 위의 쿼리는 4.5인가 5.X 버전에서만 될껄요~
21개 rand 로 한번에 불러와서 7 개씩 나누어서 뿌려주면 되지 않나요?
아무래도 제가 문제를 이해하지 못하는 듯 하네요.. ^^;
최근 21개중 랜덤으로 7개 뽑아 오는거 같은데...
저도 그래서 그렇게 답을 했는데...
아닐까요??
아, 그렇군요.. :-). 설명 감사합니다.

그런데,그렇다면 3 개의 탭으로 7개씩 랜덤으로 분배해야 할텐데,
꼬을님읩 방법을 3 번 쓰면 겹치지 않나요?

21개 배열에 받아놓은 후, shuffle 함수써서 순서를 섞어놓은 후
역시 7개씩 나누어서 탭으로 뿌려지는 것은 어떨까요?
2012-08-14 (화) 09:58:06
전진님 말씀대로 3개택으로 7개씩 랜덤으로 뿌려주는것을 원합니다. 21개를 불러와서 3개에서 뿌려주면 겹치는터라.. shuffle 함수써서 순서를 섞어놓은 후
역시 7개씩 나누어서 탭으로 뿌려지는 것은 어떻게 해야할까요?
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
12-07-12 조회 891
12-07-12 조회 756
12-07-12 조회 818
12-07-12 조회 1,042
12-07-12 조회 640
12-07-12 조회 1,081
12-07-12 조회 1,649
12-07-12 조회 957
12-07-12 조회 1,624
12-07-11 조회 834
12-07-11 조회 811
12-07-11 조회 2,632
12-07-11 조회 896
12-07-11 조회 813
12-07-11 조회 944
12-07-11 조회 1,535
12-07-11 조회 1,056
12-07-11 조회 2,048
12-07-11 조회 1,622
12-07-11 조회 1,053