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

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

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 모두 안가네요.

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

댓글 15개

$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 추가~
skinartisanCOM님!
그래도 동일한 증상입니다. ㅠ.ㅠ
// 자신만의 코드를 넣어주세요.
// 관리자 기본환경 설정 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 스키마 좀 보여 주세요.
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
잘 됩니다. ^^
엑스엠엘님 감사합니다.
가르쳐주신 소스를 적용했더니 잘 됩니다.
다시 한번 감사드립니다.
왜 g4_memo.me_id는 auto_increment가 아닐까요? 흠~~~~
엑스엠엘님의 소스로 해결을 했습니다.
관심가져 주시고 답을 제시해 주신 회원님들께 감사의 말씀을 올립니다.
즐거운 하루 보내세요. ^^
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

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

+
제목 글쓴이 날짜 조회
17년 전 조회 971
17년 전 조회 1,687
17년 전 조회 1,136
17년 전 조회 983
17년 전 조회 981
17년 전 조회 1,571
17년 전 조회 1,017
17년 전 조회 1,357
17년 전 조회 964
17년 전 조회 1,711
17년 전 조회 1,973
17년 전 조회 1,550
17년 전 조회 1,552
17년 전 조회 1,710
17년 전 조회 1,113
17년 전 조회 1,242
17년 전 조회 1,552
17년 전 조회 1,004
17년 전 조회 1,556
17년 전 조회 1,742