회원가입시 특정회원 여러명에게 쪽지보내기 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

회원가입시 특정회원 여러명에게 쪽지보내기 정보

회원가입시 특정회원 여러명에게 쪽지보내기

본문

회원가입시 특정회원 여러명에게 쪽지보내기를 하려고 합니다.

register_update.skin.php 파일에서 아래와 같이 적용을 했습니다.

=========================== register_update.skin.php =================

// 회원가입시 특정회원(test)에게 쪽지보내기

        $tmp_row = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
$me_id = $tmp_row[max_me_id] + 1;
        $sql = " insert into $g4[memo_table]
                    set me_id = '$me_id',
                    me_recv_mb_id = 'test',
                    me_send_mb_id = '$mb_id',
                    me_send_datetime = '$g4[time_ymdhis]',
                    me_memo = '{$mb_name}님이 회원으로 가입하셨습니다^^' ";
        sql_query($sql);
      // 쪽지보내기끝
===============================================================

그랬더니 한명한테는 회원가입을 하면 쪽지가 잘 갑니다.

문제는 특정회원이 여러명입니다.
여기서 특정회원을 test, test1이라고 하겠습니다.

그래서 소스를 아래와 같이 해봤습니다.

=================================================
// 회원가입시 특정회원에게 쪽지보내기

        $tmp_row = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
$okuser=array('test','test1');
$me_id = $tmp_row[max_me_id] + 1;
        $sql = " insert into $g4[memo_table]
                    set me_id = '$me_id',
                    me_recv_mb_id = '$okuser',
                    me_send_mb_id = '$mb_id',
                    me_send_datetime = '$g4[time_ymdhis]',
                    me_memo = '{$mb_name}님이 회원으로 가입하셨습니다^^' ";
        sql_query($sql);

      // 쪽지보내기끝
================================================

이렇게 하니까 쪽지가 test, test1 모두 안가네요.

어떻게 하면 여러명에게 쪽지를 보낼 수 있을지 좀 알려주세요. ㅠ.ㅠ
  • 복사

댓글 전체

$okuser=array('test','test1');
$me_id = $tmp_row[max_me_id] + 1;
$userNum = count($okuser);
for( $i=0; $i<$userNum; $i++ )
{
    $sql = " insert into $g4[memo_table]
                    set me_id = '$me_id',
                    me_recv_mb_id = '{$okuser[$i]}',
                    me_send_mb_id = '$mb_id',
                    me_send_datetime = '$g4[time_ymdhis]',
                    me_memo = '{$mb_name}님이 회원으로 가입하셨습니다^^' ";
    sql_query($sql);
}

그럼..즐플!
캐논협주곡님 답변감사합니다.

말씀하신 소스를 적용했더니 아래와 같은 애러 메세지가 뜹니다.

============================================

insert into g4_memo set me_id = '1', me_recv_mb_id = 'test1', me_send_mb_id = 'test10', me_send_datetime = '2008-04-28 11:38:35', me_memo = '입니다님이 회원으로 가입하셨습니다^^'

1062 : Duplicate entry '1' for key 1

error file : /bbs/register_form_update.php

============================================

그리고 쪽지는 test에는 왔는데 test1에는 안왔네요.
죄송하지만 한번만 더 봐세요. ^^
$okuser=array('test','test1');
$tmp_rowm = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");

이렇게 수정해 주세요(2번째줄에 $tmp_rowm 추가~
// 자신만의 코드를 넣어주세요.
// 관리자 기본환경 설정 10번에 입력된 아이디 로그인시 쪽지 발송
$bad_id = $mb[mb_id];
$bad_user = explode(",", $config[cf_10]);
$tmp_rowm = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
$me_idm = $tmp_rowm[max_me_id] + 1;
$no_bad = count($bad_user);

for($i = 0 ; $i <= $no_bad ; $i++){
if($bad_id == $bad_user[$i]){
    $sql = " insert into $g4[memo_table]
                ( me_id, me_recv_mb_id, me_send_mb_id, me_read_datetime, me_send_datetime, me_memo, memofile, bmemos, memopoint, memo_datec, memosub )
              values ('$me_idm', '운영자', '운영자', '0000-00-00 00:00:00', '$g4[time_ymdhis]', '[경고] {$bad_id} 로그인함 아이피: {$_SERVER[REMOTE_ADDR]}', '', '', '', '', '' ) ";
    sql_query($sql);
} //if
} //for

제가 사용하는 소스입니다.
skin/member/login_check.skin.php 에 넣어서 사용합니다.
기본환경설정 10번째 필드에 지정한 아이디 접속하면 쪽지 발송하는건데 질문내용과 기능은 같습니다.
답변 내용과도 별반 차이가 없는데 안된다니 이상하군요;;
1062 : Duplicate entry '1' for key 1  에러는 주키가 이미 들어 있다는 에러입니다. db의 memo 테이블 내용을 싹! 지우고, 다시 한번 해보시고요. memo 스키마 좀 보여 주세요.
$tmp_row = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
$me_id = $tmp_row[max_me_id] + 1;

$okuser=array('test','test1');
foreach( $okuser as $user) {

        $sql = " insert into $g4[memo_table]
                    set me_id = '$me_id',
                    me_recv_mb_id = '$user',
                    me_send_mb_id = '$mb_id',
                    me_send_datetime = '$g4[time_ymdhis]',
                    me_memo = '{$mb_name}님이 회원으로 가입하셨습니다^^' ";
        sql_query($sql);


        $me_id++;
}
좀 더 완전한 방법은

$okuser=array('test','test1');

foreach( $okuser as $user) {

$tmp_row = sql_fetch(" select max(me_id) as max_me_id from $g4[memo_table] ");
$me_id = $tmp_row[max_me_id] + 1;

        $sql = " insert into $g4[memo_table]
                    set me_id = '$me_id',
                    me_recv_mb_id = '$user',
                    me_send_mb_id = '$mb_id',
                    me_send_datetime = '$g4[time_ymdhis]',
                    me_memo = '{$mb_name}님이 회원으로 가입하셨습니다^^' ";
        sql_query($sql);
}
좀 더 완전한 방법은

$okuser=array('test','test1');

foreach( $okuser as $user) {

        $sql = " insert into $g4[memo_table]
                    set me_id =
 (select max(me_id) +1 from $g4[memo_table] ),
                    me_recv_mb_id = '$user',
                    me_send_mb_id = '$mb_id',
                    me_send_datetime = '$g4[time_ymdhis]',
                    me_memo = '{$mb_name}님이 회원으로 가입하셨습니다^^' ";
        sql_query($sql);
}
이 소스는 아래와 같은 에러가 납니다.

===================================================
insert into g4_memo set me_id = (select max(me_id) +1 from g4_memo ), me_recv_mb_id = 'test', me_send_mb_id = 'test41', me_send_datetime = '2008-04-28 18:52:31', me_memo = 'test님이 회원으로 가입하셨습니다^^'

1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select max(me_id) +1 from g4_memo ), me_re

error file : /bbs/register_form_update.php
엑스엠엘님의 소스로 해결을 했습니다.
관심가져 주시고 답을 제시해 주신 회원님들께 감사의 말씀을 올립니다.
즐거운 하루 보내세요. ^^
© SIRSOFT
현재 페이지 제일 처음으로