สอบถามเกี่ยวกับ php mysql insert random code ค่ะ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
cherrynaja
PHP Newbie
PHP Newbie
โพสต์: 9
ลงทะเบียนเมื่อ: 24/03/2012 2:13 am

สอบถามเกี่ยวกับ php mysql insert random code ค่ะ

โพสต์ที่ยังไม่ได้อ่าน โดย cherrynaja »

สอบถามค่ะ คือต้องการที่จะ gen code ที่มีตัวอักษรกับตัวเลขปนกัน 12 หลัก จำนวนครั้งละ 2 แสนตัวค่ะ

แล้วทีนี้เขียน 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++;
			}
				
		}
ลอง check ดูแล้วนะคะว่ามันเกิด error ตรงส่วนนี้ค่ะ

โค้ด: เลือกทั้งหมด

		foreach ($results as $row){
			array_push($code_num,$row['code']);
			$i++;
		}
ส่วนที่ query code ที่มีใน table เข้ามาเก็บใน array ค่ะ

เหมือนกับว่าถ้ามีข้อมูลในตารางแล้วเยอะๆ เวลา query มามันจะรับไม่ได้อ่าค่ะ

ทีนี้เลยลอง gen code ทีเดียว 5 แสนตัว มันหยุดอยู่แค่ 4 แสนกว่าค่ะ แล้วก็ไปทำระบบล่มด้วย เพราะเหมือนระบบได้สำรองข้อมูลเพื่อรอไว้ค่ะ



เลยอยากถามผู้รู้ค่ะ ว่าพอมีวิธีไหนที่ทำให้สามารถ gen code ลงไปแบบนี้ได้ทีละเยอะๆ โดยไม่ก่อปัญหาให้ระบบไหมคะ

ได้ไปดูเรื่อง rand() ของ mysql มาด้วยค่ะ ไม่ทราบว่าจะใช้ได้ไหม? ใช้แทนการ gen โดย php เลยได้รึป่าว?

แล้วถ้าใช้ได้ต้องเขียนแบบไหนคะ เพราะงงมากเลยค่ะ

หรือว่าพอมีวิธีอื่นอีกคะ อย่าง ajax หรือ jquery (แต่ส่วนตัวแอบคิดว่ามันก็ใช้การ query เหมือนกันอาจก่อปัญหาได้เช่นกันรึป่าวคะ 55)


ใครพอรู้ช่วยทีนะคะ ขอบคุณมากค่า ^^
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41117
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามเกี่ยวกับ php mysql insert random code ค่ะ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

foreach มันใช้กับ array ครับ
เอา result มา foreach :evil: :evil:

โค้ด: เลือกทั้งหมด

$resultset = array();
while($row = mysql_fetch_array($results)) {
  $resultset[] = $row;
}

// แล้วค่อน loop foreach จาก $resultset
foreach ($resultset as $result){
 // .....
} 
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 51