메뉴 건너뛰기

프로그램언어

조회 수 6097 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

쿠폰번호 발행 업데이트판. (간단한 클래스화[PHP4 기준] 등...)

 

 

 

DB

CREATE TABLE `coupon_test` (
  `couponNO` varchar(16) NOT NULL default '',
  `ID` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`couponNO`)
) TYPE=MyISAM;

 

 

쿠폰생성 소스

<?
// Mysql 클래스
class TMySql {
    var $dbconn; // DB 연결 리소스
    var $result; // Query 결과 저장 리소스

  

     // 생성자: DB에 연결
    function TMySQL($Host, $DB, $ID, $PW) {
        $this->dbconn=mysql_connect($Host, $ID, $PW) or die("데이터베이스 연결에 실패하였습니다.<br/>".mysql_error());
        mysql_select_db($DB, $this->dbconn) or die("{$DB}를 사용할 수 없습니다.<br/>".mysql_error());
    }

 

    // Query 실행. 결과를 $this->result 에 저장
    function Query($SQL) {
        mysql_real_escape_string($SQL);
        $this->result=mysql_query($SQL, $this->dbconn);
        if (!$this->result) die('INVALID QUERY: '.mysql_error());  
    }

 

    // Query 결과의 갯수 반환
    function Count() {
        return mysql_num_rows($this->result);
    }
}

 


// 쿠폰번호 클래스
class TCoupon {
    var $coupon_len;  // 쿠폰길이
    var $arr_no;      // 숫자배열
    var $arr_alphabet;// 알파벳배열

 

    // 생성자: 쿠폰길이를 받아 멤버에 세팅하고, 숫자와 알파벳배열을 세팅
    function TCoupon($CouponLength=16) {
         $this->coupon_len=$CouponLength;

         // 숫자
         for ($i=Ord('0'); $i<=Ord('9'); $i++) $this->arr_no[]=Chr($i);
         // 알파벳
         for ($i=Ord('A'); $i<=Ord('Z'); $i++) $this->arr_alphabet[]=Chr($i);    
    }

 

    // 쿠폰번호 반환
    function GetCoupon() {
         $result_str="";

         $len_no=count($this->arr_no);
         $len_alphabet=count($this->arr_alphabet);

 

         for ($i=0; $i<$this->coupon_len; $i++){
             // 랜덤을 돌려 0 이면 숫자, 1 이면 알파벳
             if (rand(0,1)==0) $result_str.=$this->arr_no[rand(0,$len_no-1)];
             else                 $result_str.=$this->arr_alphabet[rand(0,$len_alphabet-1)];
         } 
         return $result_str;
    }
}

 

 

 

// DB 객체 생성
$MySQL=new TMySQL('localhost', 'db_bloodguy', 'bloodguy', 'nicehide');

// 길이가 16인 쿠폰번호 객체 생성
$Coupon=new TCoupon(16);


// 쿠폰발행 루프 (10000개의 번호를 생성한다고 가정)
$x=0;
while ($x<10000){
    $CouponNo=$Coupon->GetCoupon();

   

    // 해당 번호가 DB 있는 중복번호인가 체크
    $MySQL->Query("select * from coupon_test where couponNO='{$CouponNo}'");
    // 중복번호가 아니라면 DB 에 넣음
    if ($MySQL->Count==0) {
         $MySQL->Query("insert into coupon_test VALUES ('{$CouponNo}' ,'')");
         //echo $CouponNo."<br>";
         $x++;
    }
    // 중복번호라면 다시
    else continue;
} // while ($x<10000)
?>



List of Articles
번호 제목 날짜 조회 수
340 $_FILES 2016.12.23 23853
339 $_SERVER 함수 2016.12.23 23949
338 $_SERVER 환경변수 2016.09.21 33246
337 $_SERVER변수 2014.02.27 24456
336 13자리 timestamp 생성하기 file 2020.09.28 658
335 addslashes — 문자열을 슬래시로 인용 2016.12.23 23089
334 addslashes 함수의 필요성 2015.04.14 24258
333 ajax refresh 시키기(자동리플래쉬) with php file 2017.03.06 23188
332 Ajax로 구연한 실시간 서버시간출력 file 2017.03.06 21042
331 AJAX로 해당 페이지에서 COOKIE 사용하기 2021.03.26 361
330 AJAX를 활용하여 JSON 댓글 처리하기 (PHP) 2018.07.04 8470
329 array (배열) 2015.04.14 24911
328 array_key_exists 배열에서 key가 존재하는지 확인 2016.12.23 22216
327 array_push 배열 끝에 하나 이상의 요소를 추가 2016.12.23 21612
326 array_slice 배열의 일부를 추출 2016.12.23 20782
325 base64 인코딩/디코딩 함수의 특징 file 2018.02.09 13092
324 call_user_func 사용자가 정의한 함수를 호출하여 실행고자 할 때 사용 2016.12.23 21324
323 class_exists 클래스가 정의되었는지 확인 2016.12.23 19894
322 Class를 이용한 DB Connection 소스 (Oracle, MyS 2014.02.27 30511
321 CodeIgniter - DB오류체크, 디버깅 여부 설정 2021.03.29 498
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved