쿼리 질문드립니다.
본문
<?php
include_once("./_common.php");
$sql = "select co_subject, co_id, co_content, co_seo_title from {$g5['g5_content']} where id='admin' order by rand() desc limit 1";
$query = mysql_query($sql);
while($data = mysql_fetch_assoc($query)) {
$filename .= "$data[co_subject]".", ";
}
?>
<?=$filename ?>
이렇게 하니깐 에러나오네요.
내용관리 페이지의 제목을 랜덤으로 나오게 하고 싶은데,,,, 그누4용 쿼리문을 약간 수정해서 그누5에 사용하니 안되네요....
답변 2
본문에서 그누4용 쿼리라고 말씀하셨는데, 그누4와 그누5의 DB 스키마는 일부 상이한 부분이 있고, 또 내용관리 테이블(DB)에서 존재하지 않는 필드도 있습니다.
co_seo_title 라는 필드는 존재하지 않고, id 라는 필드도 없어서 where 조건문으로 id가 'admin' 인 데이터를 불러오려고 해도 그런 조건 자체가 성립되지 않기에 나타나지 않는 것이 당연한 것이고요.
☞ DB스키마: http://www.gnuwiz.com/bbs/board.php?bo_table=gnu_tip&wr_id=75&page=2
아래 소스대로 하면, 내용관리 페이지의 제목이 랜덤하게 출력될 것입니다.
그리고, 본문에서 'mysql_query' 를 사용하셨는데, 이미 그누보드의 common.php 파일을 include_once 한 상태에서 mysql_query를 호출하면 DB 접속이 안된 상태이므로, sql_query을 사용하셔야 되고, 또 limit 가 '1' 인 상황에서는 굳이 while 내지 for, foreach 를 사용할 필요 없이 sql_fetch를 쓰면 됩니다.
<?php
include_once("./_common.php");
$data = sql_fetch(" select co_subject, co_id, co_content from {$g5['content_table']} order by rand() desc limit 1 ");
$filename = $data['co_subject'];
?>
<?=$filename ?>
<?php
include_once("./_common.php");
$sql = "select co_subject, co_id, co_content, co_seo_title from {$g5['g5_content']} where id='admin' order by rand() desc limit 1";
$query = sql_query($sql); //이부분변경
while($data = sql_fetch_array($query)) { // 이부분변경
$filename .= $data['co_subject'].", "; // 여기도 일부변경
}
?>
<?php echo $filename; // 여기도 조금 변경 ?>
이렇게 변경해보세요
!-->