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

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

QA

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

본문

안녕하세요. :)


아래는 레벨 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 로 변경해야 됩니다.
답변을 작성하시기 전에 로그인 해주세요.
전체 125,873 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT