전체글 추출 소스 수정가능할까요.
본문
https://sir.kr/g5_tip/2456#c_2457
- 스밀리에님이 올리신팁인데요.
<?php $sql_board = "select * from g5_board"; $res_board = mysql_query($sql_board); $total_recordes = mysql_num_rows($res_board); for ($j=0; $row_board=sql_fetch_array($res_board); $j++) { if ($total_recordes-1 == $j) { $sql_data .= "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 "; } else if ($j == 0){ $sql_data = "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 union all " ; } else { $sql_data .= "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 union all " ; } } $sql_data .= " order by rand() limit 10"; $res_data = mysql_query($sql_data); for ($i=0; $row=sql_fetch_array($res_data); $i++) { echo $row[wr_subject]."<br>"; }?>
답변 1
질문의 내용에 따르면
순서에 상관이 없겠는데요
SQL 문장의 정렬방식은
order by 패턴
형태인데
여기는
$sql_data .= " order by rand() limit 10";
로 되어있는것으로 보아
무작위로 10개만 추출입니다.
게시판을 기준으로 작성시간을 역순으로 한다면
order by wr_datetime desc
로 해야 하구요
게시판이 여러개를 join 한 경우 alias 를 명시해야 합니다.
위의 예에서
60일씩으로 한다는건 조건을 걸어야 겠죠
if ($total_recordes-1 == $j) {
$sql_data .= "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 ";
} else if ($j == 0){
$sql_data = "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 union all " ;
} else {
$sql_data .= "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 union all " ;
}
$sql_data .= " and wr_datetime >= DATE_ADD(NOW(), INTERVAL -60 DAY) ";
//$sql_data .= " order by rand() limit 10";
$sql_data .= " order by wr_id desc limit 10"; // wr_id 가 크면 최신
와 같이 하시면 어느정도 보완이 되지 않을까 싶네요