랜덤으로 글 출력할 때 특정 글만 고정 출력하는 법

랜덤으로 글 출력할 때 특정 글만 고정 출력하는 법

QA

랜덤으로 글 출력할 때 특정 글만 고정 출력하는 법

본문

안녕하세요?

 

쿼리문에 order by radnd() 사용해서 게시글을 랜덤으로 출력하여 사용하고 있습니다.

그런데 특정 게시글은 랜덤이 아니라 계속 고정적으로 노출시키고 싶은데요,

 

어떻게 구현하면 좋을지 조언을 구하고자 합니다.

혹시 쿼리문으로도 가능한지도 궁금합니다!

 

감사합니다.

이 질문에 댓글 쓰기 :

답변 4

어떤 구조로 작업을 하셨는지는 잘 모르겠지만 다음과 같이 하면 되지 않을까 싶네요

예시


<?php
// 고정으로 출력할 특정 글의 wr_id
$fixedPostID = 123;
// 특정 글을 고정으로 출력
$fixedPost = sql_fetch("SELECT * FROM {$g5['write_table']} WHERE wr_id = '{$fixedPostID}'"); // 특정 글을 가져오는 SQL 쿼리 예시
if ($fixedPost) {
    // 특정 글 출력
    echo "<h2>{$fixedPost['wr_subject']}</h2>";
    echo "<p>{$fixedPost['wr_content']}</p>";
}
// 나머지 글들을 랜덤으로 출력하는 SQL 쿼리
$randomPosts = sql_query("SELECT * FROM {$g5['write_table']} WHERE wr_id != '{$fixedPostID}' ORDER BY RAND() LIMIT 10"); // 랜덤 글들을 가져오는 SQL 쿼리 예시
while ($post = sql_fetch_array($randomPosts)) {
    echo "<h2>{$post['wr_subject']}</h2>";
    echo "<p>{$post['wr_content']}</p>";
}
?>

 


<?php
// 고정으로 출력할 특정 글의 wr_id
$fixedPostID = 123;

// 특정 글을 고정으로 출력하는 SQL 쿼리
$sql = "SELECT * FROM {$g5['write_table']} WHERE wr_id = '{$fixedPostID}'";
$sql .= " UNION ALL ";
$sql .= "SELECT * FROM {$g5['write_table']} WHERE wr_id != '{$fixedPostID}' ORDER BY RAND() LIMIT 10";

$posts = sql_query($sql);

while ($post = sql_fetch_array($posts)) {
    echo "<h2>{$post['wr_subject']}</h2>";
    echo "<p>{$post['wr_content']}</p>";
}
?>


참고하셔서 본인의 사이트에 맞게 작업하시면 될 것 같습니다.
여분필드를 사용하신다면  UNION ALL 다음줄에 아래와 같이 수정 하시면 될것 같습니다.


$sql .= "SELECT * FROM {$g5['write_table']} WHERE wr_id != '{$fixedPostID}' AND wr_20 = 0 ORDER BY RAND() LIMIT 10";


두 번째 쿼리 부분에 AND wr_20 = 0 조건을 추가하여 나머지 글 중 wr_20 필드 값이 0인 글을 선택하게되며, 이렇게 하면 특정 글은 wr_20 필드 값이 1인 경우에만 선택되고, 나머지 글은 wr_20 필드 값이 0인 경우에만 선택되게 됩니다.

그런데 특정 게시글은 랜덤이 아니라...

==

특정 게시물을 어떻게 지정하시나요.

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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