테스트 사이트 - 개발 중인 베타 버전입니다

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

밀리지 2년 전 조회 1,933

안녕하세요?

 

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

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

 

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

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

 

감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트

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

예시

</p>

<p><?php

// 고정으로 출력할 특정 글의 wr_id

$fixedPostID = 123;</p>

<p>// 특정 글을 고정으로 출력

$fixedPost = sql_fetch("SELECT * FROM {$g5['write_table']} WHERE wr_id = '{$fixedPostID}'"); // 특정 글을 가져오는 SQL 쿼리 예시</p>

<p>if ($fixedPost) {

    // 특정 글 출력

    echo "<h2>{$fixedPost['wr_subject']}</h2>";

    echo "<p>{$fixedPost['wr_content']}</p>";

}</p>

<p>// 나머지 글들을 랜덤으로 출력하는 SQL 쿼리

$randomPosts = sql_query("SELECT * FROM {$g5['write_table']} WHERE wr_id != '{$fixedPostID}' ORDER BY RAND() LIMIT 10"); // 랜덤 글들을 가져오는 SQL 쿼리 예시</p>

<p>while ($post = sql_fetch_array($randomPosts)) {

    echo "<h2>{$post['wr_subject']}</h2>";

    echo "<p>{$post['wr_content']}</p>";

}

?>

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

밀리지
2년 전
감사합니다! 혹시 쿼리 하나로 해결할 수 있는 방법은 없을까요?
웹메이킹
2년 전
[code]
<?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>";
}
?>
[/code]

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

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

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

댓글을 작성하려면 로그인이 필요합니다.

지름신2
2년 전

쿼리에서 union 으로 하시는게 제일 쉬울듯요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

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

==

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

밀리지
2년 전
wr_20 필드 값을 1로 주었습니다. 나머지 일반글은 0 이구요
엑스엠엘
2년 전
Order by wr_20 desc, rand()

댓글을 작성하려면 로그인이 필요합니다.

s
sinbi Expert
2년 전

특정글을 최신글 코드로 게시판 위쪽에 노출시키면 되지 않을까요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인