채택완료
디비에서 불러와 배열에 저장하고 나서 랜덤으로 보여주기
메인 페이지에서 랜덤 게시판 접근가능하도록 구상중입니다.
1. $g5['board_table'] 에서 생성된 테이블 명을 모두 불러온 후
2. array_rand 함수로 1 개 불러오기
코드는 아래와 같습니다.
그런데 자꾸 아래 에러가 뜹니다.
Warning: array_rand() expects parameter 1 to be array,
$a 를 배열로 인식못하는거 같은데 제가 뭔가를 잘못하고 있는건가요?
$a 배열에 넣지 않고, echo 하면
모든 게시판 명이 다 뜨긴합니다.
Copy
$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";
|
답변 3개 / 댓글 2개
채택된 답변
+20 포인트
2019-12-03 (화) 23:04:43
Copy
$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
2019-12-04 (수) 07:03:42
감사합니다. 저 방식도 해봤다고 생각했는데;; 이것저것 바꿔보면서 저 경우의 수? 를 빼먹었나보내요 ㅜㅜ $a = array(); 배열 만들기는 상관이 없었습니다. 감사합니다. ㅜㅜ
2019-12-04 (수) 08:57:33
$sql = "SELECT * FROM ".$g5['board_table']." ORDER BY RAND()";
이런 식으로 하면 굳이 php에서 array_rand() 함수를 안 돌려도 됩니다.
2019-12-04 (수) 00:32:36
그냥 커리를 하기전에 랜덤 알고리즘 을 처리해서 게시판 하나만 검색하는 것을 추천합니다
답변에 대한 댓글 1개
포로리flflflfl
2019-12-04 (수) 07:05:10
혹시 랜덤 알고리즘이라는게 그누에서 기본 제공하는게 있다는 말씀이신가요?
아니면 sql 에서 랜덤으로 가져올 수있는 방법이 있다는 말씀이신지 ㅎ 좀만 더 알려주시면안될까요 ㅎㅎ
관심 감사드립니다~
아니면 sql 에서 랜덤으로 가져올 수있는 방법이 있다는 말씀이신지 ㅎ 좀만 더 알려주시면안될까요 ㅎㅎ
관심 감사드립니다~
답변을 작성하려면 로그인이 필요합니다.