การ insert นะคับ
คือตอนนี้ผม insert ข้อมูลลงได้แต่ช่องที่เราไม่ได้กรอกข้อมูลไม่ให้ลงในฐานข้อมูลจะเช็คค่ายังไงคับ
$str=array($_POST['top_name'],$_POST['top_name2'],$_POST['top_name3'],$_POST['top_name4'],$_POST['top_name5']);
for($i=0;$i<count($str);$i++){
//***********************การสร้าง Auto สำหรับการเพิ่มข้อมูล
$SQLauto="SELECT MAX(top_id) AS top_id FROM tb_topic";
$rs=$db->Execute ($SQLauto) ;
$result=$rs->fields;
$MaxID1=$result['top_id'];
$MaxID2=$MaxID1+1;
if(isset($_POST['addtopic'])){
$SQL="insert into tb_topic (top_id,top_name,group_id,userupdate,lastupdate) values (".$db->Quote($MaxID2).",".$db->Quote($str[$i]).",".$db->Quote($group_id).",".$db->Quote($semp_id).",".$datenownew.")";
if($db->Execute ($SQL)){
echo"<script>
alert(\"บันทึกข้อมูลเรียบร้อย\");</script>";
}else{
echo"<script>
alert(\"บันทึกข้อมูลไม่สำเร็จ\");
window.location='../topic/show_topic.php';</script>";
}
}
}
1.การแสดงผล เมื่อมีข้อผิดพลาด (หรือไม่ได้กรอกข้อมูล)
2.การแสดงผล เมื่อทำงานเรียบร้อย
แนวคิดจริงๆ มันก็อยู่ที่การออกแบบการแสดงผลนั่นแหละ ว่ามีข้อกำหนดอย่างไร
หลักการก็คือ ตรวจสอบว่ามีการส่งค่า มาหรือไม่ ถ้าไม่มี ก็ไปแสดงผลข้อความผิดพลาด
ควรจะทำความเข้าใจแนวคิดก่อน ซึ่งแนวคิดทั่วๆ ไป ก็ตรงไปตรงมา เสร็จแล้วก็เอาแนวคิดมาเขียนเป็นโค้ด
การตรวจสอบว่ามีการกรอกข้อมูลหรือไม่ หลังจาก submit แล้ว (ที่ PHP) โดยปกติก็แค่ตรวจว่ามันเป็นค่าว่างหรือไม่
<?php
if ($_POST['top_name'] == ''){
// ไม่ได้กรอกมา เขียนโค้ดเพื่อแสดงข้อผิดพลาดที่นี่
} else {
// เขียนโค้ดเพื่อบันทึกข้อมูลที่นี่
}
?>
ถ้าจะสังเกตุ จะเห็นว่าโค้ดก็ตรงไปตรงมา เป็นไปตามแนวคิด ส่วนจะนำไปประยุกต์ใช้อย่างไร ก็อยู่ที่ทำความเข้าใจได้หรือเปล่า ถ้าเข้าใจ ก็จะประยุกต์ได้ไม่ยาก