채택완료

카페24 대량메일 DB연동 리턴값 동일?

2018-06-29 (금) 10:03:21 3,188
Copy
if ($_POST['key'] == "인증코드") {

    $conn = mysql_connect(디비 접속 정보);

    mysql_select_db(디비명, $conn);

 

    if ($_POST['testmode'] == 1) {

        $result = mysql_query("select count(*) as cnt from 회원테이블"); // 연동 테스트용 , 받는 사람 총 수 쿼리 (실제 발송용 쿼리와 조건절을 같게 작성해주세요)

 

        if ($result) {

            $data = mysql_fetch_array($result, MYSQL_ASSOC); echo $data['cnt'];

        }

    } else {

        $result = mysql_query("select 이름, 이메일, 핸드폰, 기타1, 기타.... from 회원테이블"); // 실제 발송용 쿼리

        if ($result) {

            while (

                $row = mysql_fetch_array($result, MYSQL_ASSOC)) {

                    echo $row["이름"].",".$row["이메일"].",".$row['핸드폰'].",".$row['기타1']...기타(최대 10개)"; // 출력 순서는 이름, 이메일, 핸드폰, 기타 순으로 하셔야 합니다. echo "\n";

            }

        }

        mysql_free_result($result);

    }

mysql_close($conn);

} else {

    exit;

}

카페24에서 대량메일 DB연동시 제공되는 php예제

--------------------------------------------------------------------------------------------------

예제를 가져와 수정한 코드

Copy
<?php
include_once('./_common.php');

if ($_POST['key'] == "실제인증코드")  //인증코드
{
        $sql_common = " from {$g5['member_table']}";
        $sql_where = " where(1) ";

 

        // 메일수신동의한 회원만 가져옴
        $sql_where .= " and mb_mailling = '1' ";

 

        // 탈퇴, 차단한 회원은 제외
        $sql_where .= " and mb_leave_date = '' and mb_intercept_date = '' ";


    if ($_POST['testmode'] == 1) {
        $sql = " select count(*) as cnt, mb_id, mb_name, mb_email {$sql_common} {$sql_where}";
        $result = sql_query($sql);
        // 연동 테스트용, 받는 사람 총수 쿼리. 실제 발송용과 같은 조건으로 작성해주세요

        if ($result)
        {
            $data = sql_fetch_array($result);
            echo $data['cnt'];
        }
    } else  {
        $sql = " select count(*) as cnt, mb_id, mb_name, mb_email {$sql_common} {$sql_where}";
        $result = sql_query($sql);
        // 실제 발송용 쿼리  , 핸드폰, 기타1, 기타....

        if ($result)
        {
        while ($row = sql_fetch_array($result)) {
            echo  $row['mb_name'].",".$row['mb_email'].",,".$row['mb_id']; //,".$row['핸드폰'].",".$row['기타1']...기타(최대 10개);
            // 출력 순서는 이름, 이메일, 핸드폰, 기타 순으로 하셔야  합니다.
            //사용하실 회원정보의 필드명을 각각 입력해주시면 됩니다. 이름, 이메일은 필수정보입니다.
            echo "\n";
            }
        }
        sql_free_result($result);
    }

    //mysql_close($conn);
} else {
    exit;
}
?>

그런데 메일을 보내려고 db연동된 인원 수를 불러오면 제대로 잘 불러와 지는데

정작 발송하고나서 전송결과를 보면 발송하기 전에 불러온 인원수와 차이가 납니다...;;

발송하기전에 불러온 인원은 제대로 잘 나오는 상태였고, 정작 발송되는 인원은 전체회원이었습니다.

그래서 문의를 남겨보니 testmode 0, 1 의 리턴값을 같게 하라는 답변을 받고

위에 처럼 $sql = " select count(*)~~~~ 이 부분을 같게 하고 발송해보니... 저거도 안됩니다..ㅠㅠㅠ

혹시 리턴 값을 같게 하려면 어떻게 맞춰줘야 하나요..??ㅠㅠㅠ

개발자가 아닌데 해보려고 하니 잘 안되네요ㅠㅠㅠ

답변 1개

채택된 답변
+20 포인트

        if ($result)
        {
            $data = sql_fetch_array($result);
            echo $data['cnt'];
        }

이 부분도 동일하게 넣어보세요..

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