답변 4개
채택된 답변
+20 포인트
2년 전
어떤 구조로 작업을 하셨는지는 잘 모르겠지만 다음과 같이 하면 되지 않을까 싶네요
예시
</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인 경우에만 선택되게 됩니다.
<?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년 전
wr_20 필드 값을 1로 주었습니다. 나머지 일반글은 0 이구요
�
엑스엠엘
2년 전
Order by wr_20 desc, rand()
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인