|  | 
	                
  
    | 
	 
        T_Tทำไม่เป็นแล้วเรื่องห้ามใช้ชื่อuserซ้ำ Warning: mysql_num_rows(): supplied argument is not a valid     |  
    |  |  
 
              
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เหนื่อยใจจริงๆ  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            9 ก.ค. 2549  20:16:26 | By :
                            โจผีนะ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ไม่ใช่แค่mysql_num_rowsนะครับคำสั่งอื่นก็ขึ้นเหมือนกัน  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            9 ก.ค. 2549  20:38:03 | By :
                            knight |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ก็แค่ตั้ง ID เป็น primary key พอหลังจากนั้นมีคนมาหมักมาชิกในเว็บเครื่องก็จะไม่ให้ ใช้แทรกคำสั่งนี้ในส่วนของการ insert ข้อมูล ยกโตอย่างเช่น 
 $sql = insert into member .........................;
 $result = mysql_query(........) or die ("มีคนใช้ user นี้แล้วครับ");
 
 
 
 ว่างๆ แวะไปชมเว็บผมน๊า BR Club
 http://www.kobsoft.com
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            9 ก.ค. 2549  22:32:32 | By :
                            - |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ในกรณีที่มันขึ้นแบบนี้ แสดงว่า การ query ข้อมูลไม่สำเร็จครับลองนำ คำสั่ง sql ไป query ใน phpmyadmin ดูมันจะบอกว่ามีอะไรผิดพลาดนะครับ 
 select*from tb_member where username='$user_in'  <<<< คำสั่งนี้แหละ
 
 นิดนึงครับ คำสั่งข้างบนใช้ไม่ได้ เพราะมี $user_in อยู่ ให้ทำการ print คำสั่ง sql ออกมาก่อนแล้วค่อยนำไป query ใน phpmyadmin
 
 อาจจะได้  select*from tb_member where username='somchai'  แล้วเอาอันนี้ไป query ตามที่บอกดูละกันครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            9 ก.ค. 2549  22:48:51 | By :
                            Ngokung |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | T_Tไม่เข้าใจง่ะ กะลังหัดเขียนวันแรกงับ เขียนมาให้แค่นี้ งงจ้า  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            9 ก.ค. 2549  22:54:22 | By :
                            knight |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | .......  
 <?
 $host="localhost";
 $username="";
 $password="";
 $db="db_member";
 $tb="tb_member";
 $connect= mysql_connect($host,$username,$password);
 
 $sql="select*from tb_member where username='$user_in'";
 print($sql); //<<<<<<<<<<<<<<<<<<<<<<<<<<< print อันนี้ออกมา แล้วลองเอามาบอกนะว่าได้อะไร
 $result=mysql_query($sql);
 if($result){   //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ลองเพิ่มนี่ด้วยละกัน
 $row=mysql_num_rows($result);
 } // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< มี ปีกกาเปิด อย่าลืมปิดด้วยนะ
 
 if($row>0){
 echo"Not add.";exit();
 }else{
 mysql_select_db($db) or die("Not select database");
 $insert_table=mysql_query("INSERT INTO $tb (username,password,mail) values('$user_in', '$pass_in', '$mail_in')") or die ("Not insert data in Table");
 echo"<br>Insert data success";
 }
 mysql_close($connect);
 ?>
 
 
 
 ปล. แล้วดูด้วยนะว่า ชื่อตาราง ของเรามีชื่อ tb_member หรือเปล่า
 
 ปล. (อีกที) อย่างที่บอก มัน query แล้ว เกิดข้อผิดพลาดขึ้น หรือไม่ก็ไม่มีข้อมูลน่ะ ได้ไม่ได้ยังไง ก็ลองมาบอกนะ
  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            10 ก.ค. 2549  00:20:33 | By :
                            Ngokung |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | <? $host="localhost";
 $username="";
 $password="";
 $db="db_member";
 $tb="tb_member";
 $connect= mysql_connect($host,$username,$password);
 
 $sql="select*from $tb where username='$user_in'";
 $db_query=mysql_db_query($db,$sql);//อันนี้
 $num_rows=mysql_num_rows($db_query); //อันนี้
 
 if($num_rows != 0) /* ตรวจสอบว่า Id นี้มีอยู่หรือยัง */
 {
 echo"<center><br>not found</center>";
 exit();
 }
 else
 {
 
 mysql_select_db($db) or die("Not select database");
 mysql_query("INSERT INTO $tb (username,password,mail) values('$user_in', '$pass_in', '$mail_in')") or die ("Not insert data in Table");
 echo"<br>Insert data success";
 }
 mysql_close($connect);
 ?>
 
 
 ได้ละครับ ลองเอาในบทเรียนกับในบอร์ดมาโปะๆกันมั่วๆ -*-
 ขอบคุณทุกท่านมากเลย
  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            10 ก.ค. 2549  00:58:11 | By :
                            knight |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | หนีไปดูบอลมา อิอิ  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            10 ก.ค. 2549  04:10:50 | By :
                            โจผีนะ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ความจริง ตามความคิดเห็นที่ 3 ดีกว่านะ $sql = insert into member .........................;
 $result = mysql_query(........) or die ("มีคนใช้ user นี้แล้วครับ");
 แบบนี้อ่ะ เพราะว่า เช็คโดยใช้ mysql เลย ใช้เพียงคำสั่งเดียวเองไม่เปลืองด้วย ทำงานเร็วกว่า ปลอดภัยกว่า
 เพราะความจริงการ เช็คก่อนว่า มี รหัสซ๊ำหรือเปล่า แล้วค่อยบันทึกลงไปนั้น อาจจะมีข้อผิดพลาดได้ ในกรณี ที่เกิดการที่มี query เข้ามาพร้อมกัน ซึ่ง หาก ต้องการ ใช้ echo"<center><br>not found</center>"; exit(); ตอนท้าย ก็สามารถทำได้ใน result = mysql_query(........) or die ("มีคนใช้ user นี้แล้วครับ"); โดยเปลี่ยนจากคำพูด ว่า มีคนใช้ user แล้วเป็น ฟังชั่นแทน แล้วเรียกอีกที เช่น
 $chk=0;
 $x=mysql_query(....) or  ($chk=mysql_error_Duplicate());
 if($chk==0){
 echo "<center>success</center>";
 }else{
 echo"<center><br>not found</center>"; exit();
 }
 function mysql_error_Duplicate(){
 $error_message=mysql_error();
 //// ซึ่งคุณสามารถ เช็คจากค่า mysql error ได้ แล้วคุณสามารถเพิ่มค่า error ที่จะ return กลับไปได้ครับ
 if(substr($error_message,0,9)=="Duplicate"){
 return 1;
 }else{
 echo $error_message;
 return 0;
 }
 }
 วิธีดังกล่าวนี้จะช่วยให้ โปรแกรมกระชับ รันได้เร็วขึ้นกว่าเดิม
 แนะนำเว๊ปด้วย นะ อิอิ http://www.pataramit.com/
 
   
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            10 ก.ค. 2549  04:30:27 | By :
                            โจผีนะ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอเต็มๆแบบไม่ต้องใส่ ... ได้มะครับศึกษาได้2วันดูครึ่งๆกลางๆแล้วงงครับท่านทั้งหลาย  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            10 ก.ค. 2549  06:49:52 | By :
                            knight |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | หลักการตรวจสอบชื่อซ้ำก็คือ เมื่อเราใส่ชื่อมาแล้วให้ไปตรวจสอบกับฐานข้อมูลว่ามีชื่อนี้อยู่แล้วหรือไม่ ถ้ามีก็แสดงว่าชื่อนี้ถูกใช้ไปแล้ว แค่นั้นเองครับ 
 คุณเคยอ่านข้อมูลออกจากฐานข้อมูลได้ยังไงก็ใช้วิธีนั้นแหละครับ ถ้าอ่านแล้วมีข้อมูลแสดงว่าชื่อนั้นซ้ำแล้วครับ
 
 ผมไม่เก่ง MySQL เลยเขียนโค้ดให้ดูไม่ได้ แต่หลักการตรวจสอบมันก็มีอยู่แค่นี้เอง
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            13 ก.ค. 2549  20:25:57 | By :
                            goragod |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |  |