Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > อยากจะ update ข้อมูล แต่ติดเรื่อง select count ตอน update แก้ไขข้อมูลเดิม



 

อยากจะ update ข้อมูล แต่ติดเรื่อง select count ตอน update แก้ไขข้อมูลเดิม

 



Topic : 082206



โพสกระทู้ ( 406 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



อยากจะ update ข้อมูล แต่ติดเรื่อง select count ตอน update แก้ไขข้อมูลเดิม

ตอน Insert
ถ้าผมใช้โค๊ด select count ตอน Insert ก็จะนับจำนวนตามเงื่อนไข 1.ถ้าซ้ำก็เข้าเงื่อนไข 2.ถ้าไม่ซ้ำก็ Insert ได้แล้ว

ปัญหาคือ
ตอน update
ถ้าผมใช้โค๊ด select count ตอน update ข้อมูล แล้วกรอกแก้ไขข้อมูลเดิม มันจะเข้าเงื่อนไขซ้ำเพียงอย่างเดียว ทั้งๆที่แก้ไข id ของตัวมันเอง

รบกวนช่วยหน่อยนะครับ

Code (PHP)
     $sql = "select count(*) as countrow from flowmail where femail = $femail and access = $access ";  
     $result = mysql_query($sql) or exit($sql);
     $row = mysql_fetch_array($result);
     
      if ($row['countrow'] >0)
         exit("<script>alert('Please change femail and access There only 1 person');history.back();</script>");




Tag : PHP, MySQL, CakePHP









ประวัติการแก้ไข
2012-08-11 14:18:59
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-08-11 14:17:53 By : nattkhanesha View : 1610 Reply : 9
 

 

No. 1



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


selcet ค่ามาใส่ฟอร์มเพื่อแก้ไข
แล้ว update กลับใส่ db เดิม อยากเห็น code update ว่า Error ตรงไหนครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-11 14:34:50 By : apisitp
 


 

No. 2



โพสกระทู้ ( 406 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ครับ

Code (PHP)
     $sql = "select count(*) as countrow from flowmail where femail = $femail and access = $access ";  
     $result = mysql_query($sql) or exit($sql);
     $row = mysql_fetch_array($result);

     if ($row['countrow'] >0)
        exit("<script>alert('Please change femail and access There only 1 person');history.back();</script>");

    $sql1 = "update flowmail set
            femail  = '$femail ',
            access = '$access'
            where id = '$id'";

  mysql_query($sql1) or die(mysql_error());
  
  echo "<script>alert('Update Complete');window.location='showlist.php';</script>";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-11 14:49:56 By : nattkhanesha
 

 

No. 3



โพสกระทู้ ( 406 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ติดปัญหาตรงนี้ครับ

พอ select count นับแล้ว เงื่อนไขมันจะไปนับข้อมูลของเดิมที่กำลังจะแก้ไขด้วยครับ

Code (PHP)
   if ($row['countrow'] >0)
      exit("<script>alert('Please change femail and access There only 1 person');history.back();</script>");



ประวัติการแก้ไข
2012-08-11 15:50:32
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-11 15:50:13 By : nattkhanesha
 


 

No. 4



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


คิดได้หลายทางเจอจุดที่จะถามหลายอัน งั้นเอาที่ละอันก่อนดีกว่า
ผมคิดว่า หลักการคือ มีคนสมัครอะไรสักอย่างแล้วทางผู้ดูแลต้องการให้กรอก femail กับ access
ถาม :: ถ้าค่า femail กับ access ที่กรอกเข้ามา
1. ถ้ามีข้อมูล หรือ ค่าซ้ำ ต้องการให้เกิดอะไรขึ้นครับ
2. แล้วถ้าค่าไม่ซ้ำ หรือ ไม่มีข้อมูลในตาราง ต้องการให้มันเกิดอะไรขึ้นครับ

แล้วต่อเนื่องนะครับ ดูจากเงื่อนไข if ($row['countrow'] >0) ถ้าจำนวนใน table มีการพบค่า หรือค่ามากกว่า 0 ก็ให้ย้อนกลับไปหน้ากรอกข้อมูล
ถ้าไม่พบค่า หรือ ค่าเท่ากับ 0 ก็ทำการ update
หรือถ้าพบค่าก็ให้ทำการ update ทันที่

ตรงนี้
Code (PHP)
$sql1 = "update flowmail set
          femail  = '$femail ',
          access = '$access'
          where id = '$id'";

คำถาม :: 3 ค่า $id มาจากไหนครับ ส่งมากับเพจรับค่า หรือ เอามาจากไหน ลอง echo ดูครับ มีค่าออกมาหรือเปล่า

สุดท้าย แนะนำนะครับ.....ผมไม่แน่ใจว่า concept ต้องการอะไรแน่
ลองอ่าน concept ผมนะครับ
1. สร้าง form รับค่า และ ส่งค่า
2. รับค่าที่ต้องการ คือ femail กับ access มาหาใน table
2.1 ถ้า มีข้อมูลอยู่แล้ว หรือ พบค่า ก็ให้เด้งกลับพร้อมแจ้งเตือนว่าข้อมูลที่กรอกมา ซ้ำ อะไรก็ว่าไป บลา ๆ ๆ
2.2 ถ้า ไม่มีข้อมูล หรือค่าไม่ซ้ำ ก็ให้ทำการบันทึกข้อมูลแบบ insert (ตรงนี้ของคุณใช้ update)
Concept ที่กล่าว มันก็คือการ "ระบบสมัครสมาชิก" นี่เอง

ผมถาม 3 ข้อ ถ้าตอบข้อสงสัยนี่ได้ผมว่าคุณก็แก้ได้แล้วล่ะ อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-11 16:17:08 By : apisitp
 


 

No. 5



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : nattkhanesha เมื่อวันที่ 2012-08-11 15:50:13
รายละเอียดของการตอบ ::
ลองดูที่อธิบายไปครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-11 16:18:35 By : apisitp
 


 

No. 6



โพสกระทู้ ( 406 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบ : ข้อ 1 ถ้ามีข้อมูล หรือ ค่าซ้ำ ให้แสดง script alert ('Please change femail and access There only 1 person')
ตอบ : ข้อ 2 แล้วถ้าค่าไม่ซ้ำ หรือ ไม่มีข้อมูลในตาราง ให้ update ได้
ตอบ : ข้อ 3 ลอง echo ค่า id ที่ส่งมาแล้วครับ มีค่านะครับ

ตัวอย่าง
สมมุติว่า มีข้อมูลในฐานข้อมูลอยู่ 3 อันนะครับ

id=1 femail=01 access=003
id=2 femail=02 access=003
id=3 femail=03 access=003

ผมจะส่งค่า id=3 ไปเพื่อ update แก้ไขข้อมูลตามนี้ คือ id =3 และเปลี่ยน femail=03 เป็น femail=02

ค่าที่ส่งไป update ก็คือ id=3 femail=02 access=003

แต่ปัญหาที่เจอคือ update ค่า id=3 ไม่ได้ครับ มันแสดง script alert ว่าซ้ำกันครับ

Code (PHP)
  $id = $_POST['id'];  // id=3
  $femail = $_POST['femail'];  // femail=02
  $access = $_POST['access'];  // access=003

   $sql = "select count(*) as countrow from flowmail where femail = $femail and access = $access ";  
   $result = mysql_query($sql) or exit($sql);
   $row = mysql_fetch_array($result);

   if ($row['countrow'] >0)
      exit("<script>alert('Please change femail and access There only 1 person');history.back();</script>");

  $sql1 = "update flowmail set
          femail  = '$femail ',
          access = '$access'
          where id = '$id'";

mysql_query($sql1) or die(mysql_error());

echo "<script>alert('Update Complete');window.location='showlist.php';</script>";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-11 17:02:20 By : nattkhanesha
 


 

No. 7



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ค่าที่ส่งไป update ก็คือ id=3 femail=02 access=003
จากค่าอันนี้การเปลี่ยนค่าของ id=3 femail=02 access=003 ที่รับมา มันไปซ้ำกับค่้าของ id=2 เต็ม ๆ
มันก็เลยบอกว่ามีค่า $row['countrow'] > 0 โค้ดไม่ได้ผิดเลยครับถูกต้องสมบูรณ์
::>> แบบนี้ก็ลอง update femail กับ access ที่ค่าไม่ซ้ำกับในตารางครับ
::>> แต่ถ้าต้องการ update ค่าให้ซ้ำได้ โดยอ้าง id เป็นหลักอยู่แล้วก็เอาเงื่อนไข if ($row['countrow'] >0) ออกครับไม่ต้องเช็ค....

เข้าใจตรงกันเหรือเปล่าครับ ดูเงื่อนไขที่สร้างไว้ดีดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-11 23:48:54 By : apisitp
 


 

No. 8



โพสกระทู้ ( 406 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

งั้นผมขออีกตัวอย่างหนึ่งนะครับ

ตัวอย่าง
สมมุติว่า มีข้อมูลในฐานข้อมูลอยู่ 3 อัน

id=1 femail=01 access=003 [email protected]
id=2 femail=02 access=003 [email protected]
id=3 femail=03 access=003 [email protected]

ผมจะส่งค่า id=3 ไปเพื่อ update แก้ไขข้อมูลเดิมตามนี้
คือ id =3 femail=03 access=003 และเปลี่ยน [email protected] เป็น [email protected]

ค่าที่ส่งไป update ก็คือ id=3 femail=03 access=003 [email protected]

ปัญหาที่พบก็คือ มันแสดง script alert ว่าซ้ำกันครับ

ผมสงสัยเหมือนคำสั้งจะไปนับ id=3 เดิม ด้วยสิครับ

ขอบคุณทุกคำตอบนะครับ คุณ apisitp
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-12 07:36:54 By : nattkhanesha
 


 

No. 9



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เงื่อนไขที่ถามมามันก็เหมือนเดิมที่ตอบไปล่ะครับ...ก็เห็นอยู่ว่า db ที่คุณยกตัวอย่างมา กับค่าที่จะ update ตรง id=3 มันซ้ำกันเหมือนเดิมอ่ะครับ ผมอาจจะสื่อสารหรือแนะนำไม่ดี รอท่านอื่นนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-12 11:53:22 By : apisitp
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากจะ update ข้อมูล แต่ติดเรื่อง select count ตอน update แก้ไขข้อมูลเดิม
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่