전체글 추출 소스 수정가능할까요.

전체글 추출 소스 수정가능할까요.

QA

전체글 추출 소스 수정가능할까요.

본문

https://sir.kr/g5_tip/2456#c_2457
1. 아래소스에서 게시물 추출시 한달씩 이나, 60일씩만 보여지게 할 수 없을가요?
2. 게시물정렬이 오래된순으로 출력되는데, 최근작성한 순서대로 정렬되게 할수 없을가요?
도움부탁드립니다.
 
<?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 가 크면 최신

와 같이 하시면 어느정도 보완이 되지 않을까 싶네요


답변을 작성하시기 전에 로그인 해주세요.
전체 4

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT