레벨 9 이상 되는 회원을 foreach 로 호출하려면?

레벨 9 이상 되는 회원을 foreach 로 호출하려면?

QA

레벨 9 이상 되는 회원을 foreach 로 호출하려면?

답변 3

본문

안녕하세요. :)


아래는 레벨 9 이상의 회원 id를 호출 소스인데요.

<?
$sql="select * from `g4_member` where mb_level>='9' order by mb_name";
$result1 = mysql_query($sql);
while ($row = mysql_fetch_array($result1)) {

echo "$row[mb_id]";

}

?>

이것을 while 문 대신, foreach 문으로 불러오려면 어떻게해야 되나요?


$wid 값이 "회원아이디1,회원아이디2,회원아이디3" 처럼 한묶음의 값을 가지게 하려고 하는데,

아래처럼 하였는데, 이렇게 하였는데, 잘 안되네요.ㅜㅜ

도움 부탁 드려요.


<?
$sql="select * from `g4_member` where mb_level>='9' order by mb_name";
$result1 = mysql_query($sql);
$row = mysql_fetch_array($result1);

foreach($row[mb_id] as $i) {
    $wid .= $i.',';
}
echo "$wid";

}

?>

이 질문에 댓글 쓰기 :

답변 3

인원수가 적을 때는 슈와이님 답변처럼 하면 됩니다

많으면 즉 문자열 길이가 길어지면 서버 설정에 따라 잘려서 나오게 됩니다 

이런 경우는 아래처럼 하면 됩니다

<?

include "common.php";

$result1 = sql_query("select mb_id from g5_member where mb_level>='5' order by mb_name");
$i=0;
while($row = sql_fetch_array($result1)){
 $i++;
     $wid .=$deli. $i.$row['mb_id']; $deli=',';
}
echo $wid;

?>



/* 데이타가 많아서 짤릴경우 실행
$sql = 'set group_concat_max_len = 2048';
mysql_query($sql);
*/

$sql = 'select group_concat(mb_id) ids from (select mb_id from g4_member where mb_level >= 9 order by mb_name) member'; 
$result1 = mysql_query($sql);
$row = mysql_fetch_array($result1);
echo $row['ids'];

<?
$sql="select * from `g4_member` where mb_level>='9' order by mb_name";
$result1 = mysql_query($sql);
$row = mysql_fetch_array($result1);

foreach($row as $i) {
    $wid .= $i['mb_id'].',';
}
echo substr($wid, 0, -1); // 마지막 , 는 제외
?>

$row['mb_id'] 를 $row 로 변경해야 됩니다.
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로