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

디비에서 불러와 배열에 저장하고 나서 랜덤으로 보여주기 채택완료

포로리flflflfl 5년 전 조회 3,402

메인 페이지에서 랜덤 게시판 접근가능하도록 구상중입니다.

 

1. $g5['board_table'] 에서 생성된 테이블 명을 모두 불러온 후 

2. array_rand 함수로 1 개 불러오기 

코드는 아래와 같습니다.

그런데 자꾸 아래 에러가 뜹니다. 

Warning: array_rand() expects parameter 1 to be array, 

$a 를 배열로 인식못하는거 같은데 제가 뭔가를 잘못하고 있는건가요? 

 

$a 배열에 넣지 않고, echo 하면 

모든 게시판 명이 다 뜨긴합니다. 

 

                        $sql = " select * from {$g5['board_table']}"; // 테이블 리스트를 전체 선택

                        $a = array();  // 배열 만들고 

                        $result = sql_query($sql);

                             for ($i=0; $row=sql_fetch_array($result); $i++) {

                                $a = $row['bo_table'];

                                } // 하나씩 배열에 저장해주고 </p>

<p>;</p>

<p>                        $rand_keys = array_rand($a, 2); // 

                        echo $a[$rand_keys[0]] . "\n";

                        echo $a[$rand_keys[1]] . "\n";</p>

<p> </p>

<p>

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

답변 3개

채택된 답변
+20 포인트
5년 전
$sql = " select * from {$g5['board_table']}"; // 테이블 리스트를 전체 선택
$a = array();  // 배열 만들고 
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
 $a[] = $row['bo_table']; //잘못된 부분
} // 하나씩 배열에 저장해주고 
$rand_keys = array_rand($a, 2); // 
echo $a[$rand_keys[0]] . "\n";
echo $a[$rand_keys[1]] . "\n";
 

 

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

답변에 대한 댓글 1개

포로리flflflfl
5년 전
감사합니다. 저 방식도 해봤다고 생각했는데;; 이것저것 바꿔보면서 저 경우의 수? 를 빼먹었나보내요 ㅜㅜ $a = array(); 배열 만들기는 상관이 없었습니다. 감사합니다. ㅜㅜ

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

$sql = "SELECT * FROM ".$g5['board_table']." ORDER BY RAND()";

이런 식으로 하면 굳이 php에서 array_rand() 함수를 안 돌려도 됩니다.

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

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

그냥 커리를 하기전에 랜덤 알고리즘 을 처리해서 게시판 하나만 검색하는 것을 추천합니다

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

답변에 대한 댓글 1개

포로리flflflfl
5년 전
혹시 랜덤 알고리즘이라는게 그누에서 기본 제공하는게 있다는 말씀이신가요?
아니면 sql 에서 랜덤으로 가져올 수있는 방법이 있다는 말씀이신지 ㅎ 좀만 더 알려주시면안될까요 ㅎㅎ
관심 감사드립니다~

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

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

로그인