PHP 쿠폰 발행 질문 채택완료

안녕하세요 PHP 쿠폰을 100개 발행을 할려고합니다.

Copy
<?php

$conn = mysqli_connect("127.0.0.1:3307", "DBID", "DBPW", "buguk9");



 

srand((double)microtime()*1000000);




 

$x=0;

 

while ($x<100){ 

 

   $len = 16;

$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ123456789';

   $i = 0;

   $str = "";

   

 

 

    while ($i < $len) {

      $num = rand() % strlen($chars);

      $tmp = substr($chars, $num, 1);

      $str .= $tmp;

      $i++;

  }

  

  $str = preg_replace('/([0-9A-Z]{4})([0-9A-Z]{4})([0-9A-Z]{4})([0-9A-Z]{4})/', '\1-\2-\3-\4', $str);

 

        $sql = "INSERT INTO coupon_test ( couponNO, ID) VALUES ( '$x', '$str');";

        echo $str ."<br>";

        //echo $CouponNo."<br>";

 

        $x++;



 

 

 

    

 

} // while 




 

$a = mysqli_query( $conn , $sql );

 

if( $a ){ echo("데이터 입력성공"); }

 

else { echo("데이터 입력실패"); }

 

?>

 

이렇게 코드를 짜니 쿠폰번호는 100개가 생성은 되는데

DB에 입력은 마지막 쿠폰번호만 입력이 되더라구요 혹시 해결방법이 있을까요??

고수님들 부탁드립니다

답변 2개

채택된 답변
+20 포인트

Copy
<?php
$conn = mysqli_connect("127.0.0.1:3307", "DBID", "DBPW", "buguk9");

 
srand((double)microtime()*1000000);

 
$x=0;
 
while ($x<100){ 
 
   $len = 16;
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ123456789';
   $i = 0;
   $str = "";
   
 
 
    while ($i < $len) {
      $num = rand() % strlen($chars);
      $tmp = substr($chars, $num, 1);
      $str .= $tmp;
      $i++;
  }
  
  $str = preg_replace('/([0-9A-Z]{4})([0-9A-Z]{4})([0-9A-Z]{4})([0-9A-Z]{4})/', '\1-\2-\3-\4', $str);
 
        $sql = "INSERT INTO coupon_test ( couponNO, ID) VALUES ( '$x', '$str');";
        mysqli_query( $conn , $sql );
        echo $str ."<br>";
        //echo $CouponNo."<br>";
 
        $x++;

 
 
 
    
 
} // while 

  
?>
mysqli_query <= 이부분을 반복문 안에 넣으셔야 합니다

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다!! 덕분에 해결했습니다!

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

insert 쿼리 실행명령어를 반복문 안에다가 넣어야겠죠

로그인 후 평가할 수 있습니다

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

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

로그인
🐛 버그신고