[ php ] [ class ] 쿠폰발행 class 버젼 > php

본문 바로가기

사이트 내 전체검색

php

[ php ] [ class ] 쿠폰발행 class 버젼

작성일 18-09-27 15:19

페이지 정보

작성자 웹지기 조회 4,152회 댓글 0건

본문

DB


[code]

CREATE TABLE `coupon_test` (

    `couponNO` varchar(16) NOT NULL default '',

    `ID` varchar(20) NOT NULL default '',

    `datetime` datetime NOT NULL default CURRENT_TIMESTAMP,

    PRIMARY KEY (`couponNO`)

) TYPE=MyISAM;

[/code]


쿠폰생성 소스

[code]

<?

// 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)

?> 

[/code]


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 82건 4 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기