books 라는 테이블만들어서 명언을 넣었습니다.
게시물 하단에 랜덤 명언을 출력하고자 하는데 오류만 나네요
<?
$sql = " select * from books ORDER BY RAND() LIMIT 1";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo $row['content'];
}
?>
그누보드에선 잘사용하던 소스인데 오류가 발생해 문의한결과
그누보드는 sql_query 이지만 (그누보드는 함수를 재정의 되어 있습니다.)
mysql_query를 써야 합니다란 답변으로 아랴와같이 수정했으나 마찬가지로 오류가 납니다.
<?
$sql = " select * from books ORDER BY RAND() LIMIT 1";
$result = mysql_query($sql);
for ($i=0; $row=mysql_fetch_array($result); $i++) {
echo $row['content'];
}
?>
방법이 있다면 좀 알려주시면 감사겠습니다.
말씀드렸다시피 $wpdb->get_row() 이건 한 줄을 가져오는 방법입니다.
엑셀의 표로 비유를 하자면 엑셀 한 줄을 가져오는 거죠.
엑셀의 여러줄을 가져오려면 $wpdb->get_results() 이걸 사용해야 합니다.
응용하자면 아래 코드처럼요.
<?php
$books_list = $wpdb->get_results("select * from `books` ORDER BY RAND() LIMIT 3");
foreach($books_list as $book){
echo $book->content;
}
?>
컬럼(column) 과 로우(row) 의 차이를 이해하시면 도움이 될 듯합니다.
정말 감사합니다.
근데 한가지 질문만 더드릴께요
가령 3개를 출력한다면 아래처럼 하면 될거 같은데 안되네요.
완전 초보라 이해 바랍니다.ㅠㅠ
<?php
$book = $wpdb->get_row("select * from `books` ORDER BY RAND() LIMIT 3");
echo $book->content;
?>
워드프레스에서는 데이터베이스 쿼리 기능이 조금 다릅니다.
우선 아래처럼 하시면 될 듯합니다.
<?php
$book = $wpdb->get_row("select * from `books` ORDER BY RAND() LIMIT 1");
echo $book->content;
?>
혹은 아래처럼요.
<?php
$content = $wpdb->get_var("select `content` from `books` ORDER BY RAND() LIMIT 1");
echo $content;
?>
간단히 설명을 드리자면,
하나의 값을 가져오는 방법입니다.
<?php
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
echo "<p>User count is {$user_count}</p>";
?>
한 줄을 가져오는 방법입니다.
<?php
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE `link_id`=10");
?>
여러줄을 가져오는 방법입니다.
<?php
$users_list = $wpdb->get_results("SELECT * FROM $wpdb->users LIMIT 10");
foreach($users_list as $user){
echo $user->display_name;
}
?>
워드프레스의 데이터베이스 쿼리 방법은 자세한 설명은 아래 링크를 확인해주세요.