|
|
|
สอบถามเกี่ยวกับ php mysql insert random code จำนวนเยอะค่ะ |
|
|
|
|
|
|
|
ปรับแก้เองน่ะครับ วิธีนี้ผมใช้อยู่ insert ได้เกิน 200k แน่นอนครับ ถ้ายัง over memory อาจต้องปรับ php.ini พวก time_out ช่วยนิดหน่อย
Code (PHP)
function chkduplicate($code,$gencode) // กรองเอาค่าไม่ซ้ำ
{
$sqlstring = "";
foreach($code as $data){
if (!in_array($data['code'], $gencode)){
$sqlstring .= "('".$data['code']."'),"; // ต่อ string จะได้ ('code'),('code2'),......
}
}
return substr($sqlstring,0,-1); // เอา , ข้างสุดออก
}
function gencode($totalcode) // generate code
{
$code = array();
for($i=0;$<$totalcode;$i++){
$code[] = substr(str_shuffle('abcdeghkmnpqsuvwxyz23456789'),0,12);
}
return $code
}
$sql = mysql_query("SELECT * FROM gen_code");
$results = mysql_fetch_array($sql);
$code_num = array();
foreach ($results as $row){
$code_num[]=array('code'=>$row['code']);
}
if(!empty($code_num)){
$generated = gencode(200000); // gen สองแสน ชุด
$notdupcode = chkduplicate($code_num,$generated); // ส่งไปเช็คค่าซ้ำ จะได้ค่าที่ไม่ซ้ำกลับมา
if(!empty($notdupcode)){
mysql_query("insert into gen_code(code)values".$notdupcode);
// ตัวอย่างรูปแบบที่ insert แบบ multiple transaction
// insert into gen_code(code)values('535353636'),('9875746346'),....ประมาณนี้
}
}
|
ประวัติการแก้ไข 2012-12-20 18:11:59 2012-12-20 18:14:13 2012-12-20 22:34:05
|
|
|
|
Date :
2012-12-20 18:09:05 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|