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

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

공대그녀 11년 전 조회 7,954

안녕하세요. :)

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

='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" 처럼 한묶음의 값을 가지게 하려고 하는데,

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

도움 부탁 드려요.

='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개

채택된 답변
+20 포인트
11년 전

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

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

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

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;

?>

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

답변에 대한 댓글 1개

공대그녀
11년 전
균이님 안녕하세요. ㅎ
덕분에 잘 해결하였습니다.
늘 답변 감사드려요. 좋은하루되세요. :)

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

11년 전
/* 데이타가 많아서 짤릴경우 실행
$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'];
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

공대그녀
11년 전
슈와이님 답변 감사드려요.ㅎ
늘 많이 배웁니다.
좋은 하루 되세요~

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

11년 전

='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 로 변경해야 됩니다.
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

공대그녀
11년 전
뽁스님 답변 감사드려요 :)
아주 잘됩니다. 최고입니다. good! ㅎ
저는 rtrim을 사용하였는데, substr도 좋네요~
좋은 하루 되세요~~
:)

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

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

로그인