|
|
|
Input number หากเป็นค่าว่าง ให้บันทึก 0 ไป Update ในฐานข้อมูลด้วยวิธีใดได้บ้างครับ |
|
|
|
|
|
|
|
ปกติแล้ว การจะบันทึกข้อมูลที่รับเข้ามาจากผู้ใช้ ไม่ว่าผู้ใช้นั้นจะเป็นใครก็ตาม แม้แต่เราเอง
มันจะต้องมีกระบวนการ validate ตรวจข้อมูลก่อนเสมอ ไม่ใช่รับมันดะทั้งหมด
อะไรมาก็รับ แบบนี้ก็เตรียมตัวพังได้เลยครับ ไม่พังวันนี้ก็พังพรุ่งนี้!
ที่ให้ตรวจแม้แต่ตัวเราเอง ก็เพราะ user error ได้เสมอครับ
เมื่อมีการตรวจสอบแล้ว ขั้นตอนการกำหนดค่าว่างให้เป็น 0 มันก็อยู่ในนั้นแหละไม่มีอะไรพิเศษหรอก.
ใช้ if ตรวจเอา if (empty($ค่าที่รับมา)) {...}
|
|
|
|
|
Date :
2021-02-14 22:05:53 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากที่ผมไปศึกษา ค้นคว้ามา แค่เสริมโค้ดในไฟล์อัปเดต โดยเพิ่มโค้ด
Code (PHP)
".(!$value ? 'NULL' : (int)$value)."
แบบเต็มครับ
Code (PHP)
foreach($_POST['update_score'] as $id_registacti=>$value){
$sql = "UPDATE scorecok_regisacti SET score_registacti=".(!$value ? 'NULL' : (int)$value)." WHERE id_registacti=$id_registacti";
$result = mysqli_query($conn,$sql) or die ("Error in query: $sql " . mysqli_error());
}
mysqli_close($conn);
$Go_Back = $_GET['idactiviti'];
if($result){
echo "<script type='text/javascript'>";
echo "window.location='../report.php?idactiviti=$Go_Back';";
echo "</script>";
}
else{
echo "<script type='text/javascript'>";
echo "alert('ไม่สามารถบันทึกข้อมูลได้ กรุณาติดต่อผู้ดูแลระบบ!!');";
echo "window.location='../report.php?idactiviti=$Go_Back';";
echo "</script>";
}
ซึ่งจากการทดสอบแล้ว สามารถทำงานได้ตรงต่อความต้องการครับ
คือ หากผู้ใช้ไม่ระบุตัวเลขใน Input จะกลายเป็นค่าว่างใน Input (Input คือ ช่องกรอกข้อมูล , type='number' type คือ การระบุประเภทของข้อมูลในฟอร์ม Input ส่วน number คือ ประเภทข้อมูลแบบ *ตัวเลข) แต่เมื่อเราใช้โค้ดข้างบน ทำให้การส่งค่าว่าง กลายเป็น 0 ที่จะถูกบันทึกในฐานข้อมูลแทนค่าว่างนั้นเองครับ
คือ หากในฟอร์ม input เป็นค่าว่าง และเราทำการบันทึกข้อมูลเข้าไป จะมีการส่งค่า 0 ไปบันทึกในฐานข้อมูล ซึ่ง Field เป็น INT ซึ่งก่อนหน้านี้ input จะว่างไม่ได้ เพราะจะทำให้การบันทึกข้อมูลนั้นไม่สามารถดำเนินการได้
*********
การอธิบายอาจจะไม่เป็นทางการ และทั้งหมด เพราะผมไม่ใช่ผู้เชี่ยวชาญ การศึกษาคือการลองผิด เป็นครู ลองถูกเป็นตัวเรา ที่สามารถศึกษาและทำได้สำเร็จ
เอาจริงบางทีผมก็มีท้อนะครับที่ได้รับคำตอบบางครั้งเราก็ไม่เข้าใจ ด้วยกระบวนการที่หลายๆท่านตั้งใจที่จะช่วยเหลือ และมอบวิชาให้กับหลายๆคนที่เข้ามา แต่หลายๆท่านอาจจะลืมไปว่า ในเว็บเพจแห่งนี้ไม่ได้มีแต่ผู้เชี่ยวชาญที่จะมาถามเรื่องเล็กๆ น้อยๆ เหล่านี้ อย่าลืมผู้คนที่เป็นอย่างประเภทผม ที่เข้ามาด้วยบางครั้ง บางเรื่อง เริ่มจาก 0 ก็เป็นได้ บางคำศัพท์อาจจะไม่รู้จัก บางคำสั่งอาจจะไม่เคยชิน ขอแค่คำแนะนำ ที่ไม่ต้องบอกทั้งหมดก็ได้ ด้วยกระบวนการอื่นๆ แหล่งเรียนรู้อื่นๆ เพราะอะไรครับ ถ้าเรารู้แล้วว่า คำๆนั้นมันเรียกว่าอะไร ผมคิดว่าแค่ใส่คำที่เรารู้จักไปก็ค้นหาได้แล้ว แต่อย่าลืมว่าภาษาการเขียนโปรแกรมมันมีเยอะแยะไป บางคนรู้ บางคนไม่รู้ คือถ้าเราเอาความรู้เรามาเป็นเสาเอก ยังไงเราเองก็ไม่เข้าใจเสารอง การเรียนรู้ของทุกคน ทุกฝ่าย คือวันนี้ครับ และทุกๆวัน วันที่ทุกคนควรรับรู้การเรียนรู้ว่าทำไมเป็นแบบนี้ แต่ก็รู้ครับว่าตัวเราเองต้องเรียนรู้ ด้วยตัวเอง สุดท้ายการเรียนรู้ที่เราพยายามมันก็สำเร็จด้วย "การจัดการชุดความคิดของตัวเราเอง"
วันนี้ผมสำเร็จแล้วในเรื่องนี้ แต่ความสำเร็จ และปัญหา มันไม่ได้มีแค่วันนี้วันเดียว วันข้างหน้าอาจจะมีปัญหา วันข้างหน้าอาจจะเป็นวันที่สำเร็จ เพราะชีวิตคือการเรียนรู้ ไม่หยุดยั้ง เรียนรู้คน เรียนรู้งาน และทุกๆการเรียนรู้ คือ การเรียนรู้ตลอดชีวิต
ขอบคุณ thaicreate.com ที่่เป็นแหล่งเรียนรู้ขนาดใหญ่ มีปุ๋ยที่ดีบ้าง ไม่ดีบ้าง เป็นเรื่องธรรมดา
แค่เรา "จัดการชุดความคิดของตัวเราเอง" ก็จะทำให้เราสำเร็จ
ขอเป็นปุ๋ยเม็ดเล็กๆ อาจจะไม่มีสารอาหารที่มากมาย แต่ก็พอมีประโยชน์กับการเริ่มต้นการเรียนรู้เรื่องเดียวกัน ที่อาจจะมีบางคนติดปัญหาเหมือนกับผม
แค่...จัดการชุดความคิดของตัวเราเอง หลายๆอย่างก็มีทางออกเสมอ
>>> ท่านใดสามารถอธิบายได้ดีกว่าผม สามารถเสริมเป็นทักษะความรู้ให้กับหลายๆท่านที่เข้ามาศึกษาด้วยนะครับ
ขอบคุณครับ
|
|
|
|
|
Date :
2021-02-15 20:04:39 |
By :
ices |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|