เกี่ยวกับการเช็คค่าใน field เดียวครับ

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

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

ภาพประจำตัวสมาชิก
oxygenyoyo
PHP Hero Member
PHP Hero Member
โพสต์: 140
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

เกี่ยวกับการเช็คค่าใน field เดียวครับ

โพสต์โดย oxygenyoyo » 03/06/2008 11:55 pm

คือผมทำการ gen รหัสโดยมี 6 หลัก

แล้วนำลงไปฐานข้อมูลซัก 200k record

ผมอยากทราบจะมีวิธีไหนเช็คว่ามีการซ้ำกัน แล้วถ้าซ้ำกันให้โชว์ที่ซ้ำกันด้วยอ่ะครับ

ผมได้ลองแบบใช้ฟังก์ชั่น count มาด้วยแต่ก็ยังงงอ่ะครับ

จึงอยากทราบว่ามีวิธีเช็คอย่างอื่นไหมอ่ะครับ


ปล. ผมอยากทราบเกี่ยวกับฟังก์ชั่น random ด้วยอ่ะครับถ้าเราใช้ฟังก์ชั่นนี้จะมีการซ้ำไหม

ให้ใช้ฟังก์ชั่นนี้ในการ gen รหัสออกมาอ่ะครับ

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

โพสต์โดย mindphp » 04/06/2008 12:05 am

random มีโอกาส ซ้ำครับ

ลอง กำหนด ตารางที่ไม่ต้องการให้ ซ้ำกันเป็น PK
แล้ว insert ลงไป
แล้วเช็ค เงือนไข ว่าถ้า insert ได้ ก็ แสดง ว่า ข้อมูลไม่ซ้ำกับที่มี ในฐานข้อมูล
ถ้า ซ้ำก็ echo โชว์ มัน ออกมา หรือ จะเก็บ ใส่ตัวแปล หรือ อะไร ไว้ก่อน ก็ได้

หรือ ไม่ก็ ก่อน insert ก็ ไปเช็ค ค่า ใน field นั้นก่อน ว่า เหมือนกับ ค่าที่เรากำลัง จะ insert ลงไป หรือ เปล่า :idea:
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

ภาพประจำตัวสมาชิก
oxygenyoyo
PHP Hero Member
PHP Hero Member
โพสต์: 140
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

โพสต์โดย oxygenyoyo » 04/06/2008 12:58 am

ขอบคุณครับ ดูๆแล้วแนวคิดคล้ายๆกับ login ประมาณนั้นเลย

ตอนแรกผมก็กังวลเกี่ยวกับความเร็วความช้า

แต่ว่าลืมไปว่าจะ gen ไว้ก่อนเลยเพื่อจะมีการติดต่อจะได้ไม่ต้องมา gen ตอนนั้น

:-D :-D :-D

ภาพประจำตัวสมาชิก
oxygenyoyo
PHP Hero Member
PHP Hero Member
โพสต์: 140
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

โพสต์โดย oxygenyoyo » 04/06/2008 4:48 pm

อืมๆ... งั้นผมขอถามต่ออีกนิดหน่อยแล้วกันนะครับ


คือผมลองเช็คดูแล้วว่าได้อย่างที่ต้องการ ไม่ซ้ำ

แต่!!! มันไม่ครบตามจำนวนอ่ะครับ


insert ไป 50000 <<< อันนี้แค่ลองดู ซ้ำไป 17232 โหอย่างเยอะ

ใช้จริงแค่ 30000+ ผมอยากให้มันเช็คแล้วไม่ใช่ก็ทำใหม่ให้ครบด้วยอ่ะครับต้องเขียนยังไงดี

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

for($i=1;$i<50001;$i++)
{
   
   $text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

   $rand = substr(str_shuffle($text),0,6);
   
   $sql = "select * from random where text='$rand'";
   $result = mysql_query($sql);
   $nums = mysql_num_rows($result);
   if($nums>=1)
      {
         $pass_same = $pass_same+1;

      }else
      {
      $sql = "insert into random (recordid,text,type) values('','$rand','aaa')";
   
      mysql_query($sql);
      }
   
      if($i=="50000")
      {
      echo "Sucess <br> Password ซ้ำมีทั้งหมด $pass_same ครั้ง";
      
   
      }
   
}



อันนี้เป็นโค้ดที่ผมได้ลองเขียนดูครับ


ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 46 และ บุคคลทั่วไป 0 ท่าน