채택완료

sql 결과를 배열로 불러오기 질문입니다

2021-05-23 (일) 20:17:55 3,132
Copy
$sql = "select mb_id from g5_member order by rand() limit 100";
                        $result = sql_query($sql);                        
                        $m_result = sql_fetch_array($result);

$rand_member = id1,id2,id3,id4.... 이런식으로 전체회원중 100개의 아이디를 랜덤으로 불러오려고 하는데 위 처럼 하면 랜덤으로 불러와지긴 하는데 한개만 불러와집니다.

어떤 부분이 잘못됐는지 궁금합니다.

|

답변 4개 / 댓글 1개

채택된 답변
+20 포인트

질문의 의도가 모호합니다.

100개의 아이디를 랜덤으로 가져오고 싶으시면

볼피드님의 답변을 이용해서

$list 안에 담겨있는 100개의 ID를 활용하시면되고

100개중에서 1개만 원하시면

처음것으로 이용하면되는데

function getRandMember() {

    $sql = "select mb_id from g5_member order by rand() limit 100";

    $row = sql_fetch($sql);

    return $row[0];

}

이렇게 할경우 

$randmember = getRadnMember();

하면 매번 다른 ID를 가져오겠죠

질문에서 

이렇게 사용하는것이나 100개를 가져와서 사용하는것이나

랜덤ID를 사용하려년 용도가 누락된것같습니다.

2021-05-24 (월) 19:02:17
Copy
$sql = "select mb_id from g5_member order by rand() limit 100";
$result = sql_query($sql);       

while ($row = sql_fetch_array($result)) {
    $rand_member .= $row['mb_id'] . ',';
}

$rand_member = rtrim($rand_member, ',');
echo $rand_member;
2021-05-24 (월) 08:50:56

select group_concat( mb_id separator ',') from g5_member order by rand() limit 100

query를 이렇게 바꿔 보세요.

Copy
$list = array();


$sql = "select mb_id from g5_member order by rand() limit 100";
$result = sql_query($sql);                        
for($i=0;$row=sql_fetch_array($result);$i++){
 $list[] = $row;
}

print_r($list);

답변에 대한 댓글 1개

감사합니다. $rand_member = print_r($list) 이렇게 변수에 넣었더니 결과값이 마음대로 뿌려지는데 변수에 담으려면 어떻게 해야할까요??

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