แล้วทีนี้เขียน code ขึ้นมาใช้งานได้ค่ะ แต่พอจะ gen อีก 2 แสน ครั้งที่ 2 ก็ไม่ได้แล้วค่ะ มันขึ้น error ตอน run script ค่ะ
โดย code ที่ต้องการ gen เพิ่มเข้าไปใน table ต้องการที่จะ check ให้ไม่ซ้ำกับ code ที่มีอยู่แล้วด้วยค่ะ
ซึ่ง script ที่เขียนขึ้นมาจะเป็นการ query code ทั้งหมดที่นี่เข้าไปเก็บไว้ใน array ก่อนค่ะ แล้วค่อยมาเช็ค code ใน array อีกทีว่าซ้ำไหม
ถ้าไม่ถึงค่อยให้ insert เพิ่มใน table
โค้ด: เลือกทั้งหมด
$sql = "SELECT * FROM gen_code";
$results = mysql_query($sql);
$code_num = array();
$i = 0;
foreach ($results as $row){
array_push($code_num,$row['code']);
$i++;
}
$j = 1;
while ($j <= 200000)
{
$code = substr(str_shuffle('abcdeghkmnpqsuvwxyz23456789'),0,12);
if (in_array($code, $code_num))
{
echo "fail\n";
}
else
{
mysql_query("INSERT INTO gen_code(code) VALUES ('$code')");
$j++;
}
}
โค้ด: เลือกทั้งหมด
foreach ($results as $row){
array_push($code_num,$row['code']);
$i++;
}
เหมือนกับว่าถ้ามีข้อมูลในตารางแล้วเยอะๆ เวลา query มามันจะรับไม่ได้อ่าค่ะ
ทีนี้เลยลอง gen code ทีเดียว 5 แสนตัว มันหยุดอยู่แค่ 4 แสนกว่าค่ะ แล้วก็ไปทำระบบล่มด้วย เพราะเหมือนระบบได้สำรองข้อมูลเพื่อรอไว้ค่ะ
เลยอยากถามผู้รู้ค่ะ ว่าพอมีวิธีไหนที่ทำให้สามารถ gen code ลงไปแบบนี้ได้ทีละเยอะๆ โดยไม่ก่อปัญหาให้ระบบไหมคะ
ได้ไปดูเรื่อง rand() ของ mysql มาด้วยค่ะ ไม่ทราบว่าจะใช้ได้ไหม? ใช้แทนการ gen โดย php เลยได้รึป่าว?
แล้วถ้าใช้ได้ต้องเขียนแบบไหนคะ เพราะงงมากเลยค่ะ
หรือว่าพอมีวิธีอื่นอีกคะ อย่าง ajax หรือ jquery (แต่ส่วนตัวแอบคิดว่ามันก็ใช้การ query เหมือนกันอาจก่อปัญหาได้เช่นกันรึป่าวคะ 55)
ใครพอรู้ช่วยทีนะคะ ขอบคุณมากค่า ^^