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

쿼리 질문드립니다. 채택완료

매너천사12 6년 전 조회 3,187

 

$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]".", "; }

?>

 

이렇게  하니깐 에러나오네요.

 

내용관리 페이지의 제목을 랜덤으로 나오게 하고 싶은데,,,, 그누4용 쿼리문을 약간 수정해서 그누5에 사용하니 안되네요....

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

답변 2개

채택된 답변
+20 포인트

본문에서 그누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를 쓰면 됩니다.

 

</p>

<p><?php

include_once("./_common.php");</p>

<p>$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 ?></p>

<p>

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

답변에 대한 댓글 1개

매너천사12
6년 전
자세한 설명 감사드립니다^^

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

플래토
6년 전

</p>

<p><?php

include_once("./_common.php");</p>

<p> </p>

<p>$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'].", ";    // 여기도 일부변경

}</p>

<p>?>

<?php echo $filename;      // 여기도 조금 변경 ?></p>

<p> </p>

<p>

 

이렇게 변경해보세요

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

답변에 대한 댓글 1개

매너천사12
6년 전
적용해보니 전혀 반응이 없네요....

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

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

로그인