그누보드 카테고리 출력 (원하는 특정 카테고리의 조건으로 출력)
페이지 정보
본문
원하는 특정 카테고리의 조건을 지정
하여 해당 조건에 맞는 카테고리만 출력하도록 변경해야 합니다.
아래는 PHP 코드에서 특정 카테고리만 출력하는 예시입니다. 이 예시에서는 `category_code`가 특정 값을 가지는 카테고리만 출력하도록 수정하였습니다.
</div>
<div class="item_category">
<ul>
<?php
$sql = "SELECT * FROM category WHERE use_yn = 'y' AND category_code = '특정_카테고리_코드' ORDER BY nm ASC";
$res = sql_query($sql);
while ($row = sql_fetch_array($res)) {
?><li><a href="?category_code=<?php echo $row["category_code"] ?>&n=<?php echo $row["number"] ?>" class="<?php if ($row["category_code"]==$category_code) echo "on"; ?>"><?php echo $row["nm"] ?>(<?php echo $row['fee_point']?>P)</a></li>
<?php } ?>
</ul>
</div>
위 코드에서 `'특정_카테고리_코드'` 부분을 원하는 특정 카테고리의 코드로 변경하면 해당 카테고리만 출력됩니다. 예를 들어, 만약 카테고리 코드가 'A'인 카테고리만 출력하고 싶다면,
`'특정_카테고리_코드'`를 `'A'`로 변경하시면 됩니다.
특정 카테고리가 여러 개인 경우
해당하는 모든 카테고리를 출력하기 위해서는 SQL 쿼리를 수정해야 합니다. 이를 위해서는 `IN` 또는 `OR` 절을 사용하여 여러 카테고리 코드를 지정할 수 있습니다.
아래는 `IN` 절을 사용하여 여러 카테고리 코드를 지정하여 해당하는 모든 카테고리를 출력하는 예시입니다.
</div>
<div class="item_category">
<ul>
<?php
$specific_categories = array('카테고리_코드1', '카테고리_코드2', '카테고리_코드3'); // 원하는 특정 카테고리 코드들을 배열에 저장
$in_condition = "'" . implode("', '", $specific_categories) . "'"; // IN 절에 사용하기 위해 배열 요소들을 쉼표로 구분하여 문자열로 변환
$sql = "SELECT * FROM category WHERE use_yn = 'y' AND category_code IN ($in_condition) ORDER BY nm ASC";
$res = sql_query($sql);
while ($row = sql_fetch_array($res)) {
?><li><a href="?category_code=<?php echo $row["category_code"] ?>&n=<?php echo $row["number"] ?>" class="<?php if ($row["category_code"]==$category_code) echo "on"; ?>"><?php echo $row["nm"] ?>(<?php echo $row['fee_point']?>P)</a></li>
<?php } ?>
</ul>
</div>
랜덤한 순서로 카테고리를 가져오기
위 코드에서 `$specific_categories` 배열에 원하는 카테고리 코드들을 추가하면 해당 카테고리들만 출력됩니다. 각 카테고리 코드는 쉼표로 구분되어 SQL 쿼리의 `IN` 절에 사용됩니다. 즉, '카테고리_코드1', '카테고리_코드2', '카테고리_코드3'와 같은 형태로 배열에 추가하면 됩니다.
카테고리를 랜덤으로 출력하려면 SQL 쿼리를 수정하여 랜덤한 순서로 카테고리를 가져오면 됩니다. 이를 위해 SQL 쿼리에서 `ORDER BY` 절을 사용하여 랜덤한 순서로 결과를 얻을 수 있습니다.
아래는 `ORDER BY RAND()`를 사용하여 카테고리를 랜덤으로 출력하는 예시입니다.
```php
</div>
<div class="item_category">
<ul>
<?php
$sql = "SELECT * FROM category WHERE use_yn = 'y' ORDER BY RAND()"; // 랜덤 순서로 카테고리 가져오기
$res = sql_query($sql);
while ($row = sql_fetch_array($res)) {
?><li><a href="?category_code=<?php echo $row["category_code"] ?>&n=<?php echo $row["number"] ?>" class="<?php if ($row["category_code"]==$category_code) echo "on"; ?>"><?php echo $row["nm"] ?>(<?php echo $row['fee_point']?>P)</a></li>
<?php } ?>
</ul>
</div>
카테고리를 랜덤으로 하나만 출력
위 코드에서 `ORDER BY RAND()`를 사용하여 카테고리를 랜덤으로 출력합니다. 이렇게 하면 매번 페이지를 새로고침할 때마다 카테고리 순서가 랜덤하게 변경됩니다. 이제 웹 페이지에서 카테고리 목록을 표시할 때 마다 랜덤한 순서로 카테고리가 출력될 것입니다.
랜덤으로 하나의 카테고리만 출력하려면 SQL 쿼리를 조정하여 랜덤한 순서로 하나의 카테고리만 가져오면 됩니다. 이를 위해서는 `LIMIT` 절을 사용하여 가져올 레코드의 수를 1로 설정하면 됩니다.
아래는 `LIMIT 1`을 사용하여 랜덤으로 하나의 카테고리를 출력하는 예시입니다.
</div>
<div class="item_category">
<ul>
<?php
$sql = "SELECT * FROM category WHERE use_yn = 'y' ORDER BY RAND() LIMIT 1"; // 랜덤 순서로 하나의 카테고리 가져오기
$res = sql_query($sql);
if ($row = sql_fetch_array($res)) {
?><li><a href="?category_code=<?php echo $row["category_code"] ?>&n=<?php echo $row["number"] ?>" class="<?php if ($row["category_code"]==$category_code) echo "on"; ?>"><?php echo $row["nm"] ?>(<?php echo $row['fee_point']?>P)</a></li>
<?php } ?>
</ul>
</div>
위 코드에서 `ORDER BY RAND() LIMIT 1`를 사용하여 랜덤으로 하나의 카테고리만 가져오도록 설정하였습니다. 이렇게 하면 페이지를 새로고침할 때마다 랜덤하게 하나의 카테고리만 출력될 것입니다. `if ($row = sql_fetch_array($res))` 라인을 추가하여 결과가 없을 경우에는 출력하지 않도록 처리하였습니다. 이렇게 하면 카테고리가 하나도 없는 경우에도 오류가 발생하지 않고 안전하게 처리됩니다.
댓글목록
등록된 댓글이 없습니다.