ระบบบันทึกข้อมูลสำหรับร้านซ่อม PHP
ผมได้ทดลองใช้งานระบบบันทึกข้อมูลสำหรับร้านซ่อม PHP แล้วเจอปัญหาและไม่เข้าใจระบบครับ
link : https://www.kotchasan.com/...%B8%AD%E0%B8%A1.html
- ระบบเขียนว่า รายละเอียดของ "ลูกค้า"
แต่ผมกับไม่สามารถเพิ่มข้อมูลลูกค้าได้เลย กดส่งกี่ครั้งก็ขึ้นว่า ไม่สำเร็จ
แต่หากผมพิมพ์ชื่อ "สมาชิก"
จะสามารถเพิ่มข้อมูลได้
อยากสอบถามว่า จริงๆแล้วระบบนี้เขียนมาเพื่อให้เพิ่มข้อมูลลูกค้า / เบอร์โทรลูกค้า / ที่อยู่ลูกค้า
หรือเพื่อจุดประสงค์อื่นๆครับ
เพราะในใบรับแจ้งซ่อม ก็เขียนว่า "ชื่อลูกค้า"
แต่เหตุใดจึงไม่สามารถเพิ่มข้อมูลลูกค้าได้
link : https://www.kotchasan.com/...%B8%AD%E0%B8%A1.html
- ระบบเขียนว่า รายละเอียดของ "ลูกค้า"
แต่ผมกับไม่สามารถเพิ่มข้อมูลลูกค้าได้เลย กดส่งกี่ครั้งก็ขึ้นว่า ไม่สำเร็จ
แต่หากผมพิมพ์ชื่อ "สมาชิก"
จะสามารถเพิ่มข้อมูลได้
อยากสอบถามว่า จริงๆแล้วระบบนี้เขียนมาเพื่อให้เพิ่มข้อมูลลูกค้า / เบอร์โทรลูกค้า / ที่อยู่ลูกค้า
หรือเพื่อจุดประสงค์อื่นๆครับ
เพราะในใบรับแจ้งซ่อม ก็เขียนว่า "ชื่อลูกค้า"
แต่เหตุใดจึงไม่สามารถเพิ่มข้อมูลลูกค้าได้
ทดลองลบ ลงใหม่แล้ว ก็ยังไม่ได้
รอแอดมินมาตอบ ครับ
รายละเอียดของลูกค้า คือรายละเอียดลูกค้าจริงๆแหละครับ โดยที่ลูกค้าก็คือสมาชิกในระบบคนหนึ่ง ดังนั้น
1. สามารถเลือกลูกค้าได้จาก สมาชิกคนใดคนหนึ่งในระบบ
2. ในกรณีที่ไม่ได้เลือกจากลิสต์รายการที่แสดงขึ้นมา จะเป็นการลงทะเบียนสมาชิกใหม่โดยอัตโนมัติครับ (รายการที่ถูกเพิ่มด้วยวิธีนี้จะไม่มี username สมาชิกไม่สามารถเข้าระบบได้) ในกรณีที่มาซ่อมซ้ำ ก็จะไปเลือกจากข้อ 1 แทนครับ
ในกรณีที่มีปัญหาการใช้งงาน ลองเปิดโหมด DEBUG ดูครับ ว่ามี error อะไรหรือไม่ (วิธีเปิดอยู่ในกระทู้ปักหมุด)
ผมลอง Debug แล้วก็ไม่มี Error อะไรขึ้นครับ มีแค่ตอนผมลองเปิด Console เช็คดู ก็ขึ้น Error ตาม Video ด้านบนนี้
-> https://youtu.be/rs15g0tsBeU
[2022-08-19 22:43:36] ERROR: <br>Exception : <em>SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'username'</em> in <b>/home/xxxxxxx/domains/xxxxxxxxxx/public_html/demo/repair01/modules/repair/models/receive.php</b> on line <b>137</b>
ลองเปลี่ยน browser ดู
หรือลองปิด extension ของ browser ตัวที่เคยได้รับรายงานว่ามีปัญหาคือ ad block plus (จริงๆก็แก้ไขไปแล้วนะครับ และไม่ได้รับรายงานเพิ่มมานานมากแล้ว)
ตัว extension ไม่ได้มีเปิดไว้ครับ เพราะทดสอบจาก incognito mode ก็ไม่ได้ใช่กัน ลองเปลี่ยนไปใช้ Firefox ก็ไม่ได้เหมือนกัน
หรือทางแอดมินสะดวกเข้ามาเทสระบบมั้ยครับ
แล้วในไฟล์ log.php ที่ขึ้นว่า
ERROR: <br>Exception : <em>SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'username'</em> in <b>/home/xxxxxxx/domains/xxxxxxxxxx/public_html/demo/repair01/modules/repair/models/receive.php</b> on line <b>137</b>
หมายความว่ายังไงครับ
เพราะผมลองจากหลายๆทางแล้วยังไงก็ไม่ได้จริงๆ
Duplicate entry '' for key 'username' หมายถึง username ซ้ำเป็นค่าว่างครับ อาจเป็นไปได้ว่าคอลัมน์ username เป็น unique อยู่ จะลองเปลี่ยนให้เป็น index ดูก็ได้ครับ
แต่ปัญหาที่ผมสงสัยคือ ทำไมผมลองด้วยตัวเองบนเว็บไซต์ตัวอย่างของผมมันได้ (username เป็น unique)
ใช่ครับ แต่บนเว็บที่ส่งมาผมอัปเดทให้แล้วนะครับ
ในการใช้งาน ถ้ามี error ให้เอา error มาดูครับ เนื่องจากบนเว็บตัวอย่างไม่มีปัญหาการใช้งาน และไม่รู้ว่ามีปัญหาอะไร
error สามารถหาได้ 2 วิธี
1. ในโฟลเดอร์ datas/
2. เปิด DEBUG โหมด และอาจต้องดู error เพิ่มเติมใน console ของบราวเซอร์
ถ้ามีข้อมูลมากพอถึงจะช่วยแก้ไขปญหาให้ได้ครับ
ปัญหาที่เกิดคือ ลองบันทึกข้อมูลลูกค้าบางที บันทึกได้ 1 ไอดี จากนั้นก็บันทึกไม่ได้ค่ะ แล้วก็ขึ้น error log เหมือนในรูปค่ะ
ถ้าจะแก้ไข มี 2 ทางเลือก
1. ยกเลิกการเข้าระบบด้วยเบอร์โทรศัพท์ ถ้าไปเปิดใช้งานไว้ (ฟีเจอร์นี้ควรเปิดตั้งแต่ครั้งแรกที่ติดตั้ง)
2. เข้าไปที่ฐานข้อมูล ตาราง _user แก้ไขคอลัมน์ phone ให้สามารถรับค่าเป็น null ได้ error มันบอกว่า คอลัมน์ phone ต้องไม่เป็น null