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

렌덤 명언 출력문의 드립니다. 채택완료

런던아트 8년 전 조회 3,820

<?

$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'];

}

?>

books 칼럼에 명언을 약 200개 넣었습니다.

렌덤으로 출력을 하고자 하는데 출력이 안되고 위 소스넣은곳 부터 오류네요.

어떻게 해야 할까요?

 

 

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

답변 3개

채택된 답변
+20 포인트
8년 전

그누보드가 아니라 워드프레스 질문이군요.

 

그누보드는 

sql_query 이지만 (그누보드는 함수를 재정의 되어 있습니다.)

mysql_query를 써야 합니다.

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

답변에 대한 댓글 1개

런던아트
8년 전
다른곳에서 답변 받았습니다.. 함수가 완전 다르더라구요.. 감사합니다.

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

8년 전

구문에 논리적 오류가 보입니다.

limit 1이면 한 개를 가져오는데

for 구문을 돌리고 있어요.

 

한개만 가져올 경우 for 구문은 필요없을 것 같네요.

 

$sql = " select content from books ORDER BY RAND() LIMIT 1"; 

$row = sql_fetch($sql);

echo $row['content'];

 

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

답변에 대한 댓글 2개

김깡짱
8년 전
논리적 오류는 있는게 맞으나 문법상 문제될거는 없어요.
신리님께서 해노신 쿼리문이 훨씬 좋죠 ㅋ
런던아트
8년 전
마찬가지로 오류나네요
Fatal error: Call to undefined function sql_query() in wp-content/themes/twentyfifteen/content.php on line 49
49줄 이면 이건데요..
$result = sql_query($sql);

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

8년 전

books 라는 테이블이 있다는 말씀이시죠?

일단 칼럼이라고 봤을떼에

 

$sql = " select * from 테이블명 ORDER BY RAND() LIMIT 1" 

이렇게 돼야 하는게 맞습니다. book 라는 테이블에 content 라는 칼럼이 있는거라면

지금 작성해노신 문법에선 문제가 될게 없어보이거든요

 

테이블을 바꿔서 테스트 해본 결과 정상출력되시구요.

 

다른곳이 오류이신거 같은데..

 

kdhlove741 카톡 주시면 자세히 알려드릴게요

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

답변에 대한 댓글 1개

런던아트
8년 전
일반 그누보에선 잘 사용 했었습니다. 근데 웨드프레스에선 안되네여

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

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

로그인