ขอสอบถามเกี่ยวกับ UPDATE ครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ขอสอบถามเกี่ยวกับ UPDATE ครับ
ขอสอบถามเกี่ยวกับ UPDATE ครับ
คือผมต้องการให้ update ไปลงอีก table ซึงมีเงื่อนไขประมาณนี้ ถ้าเป็นเดือนมกราคม ก็คือ 01 กุมภา 02 ประมาณนี้
ถ้าเป็น 01 ก็ให้มัน update ลงไปในช่อง daysum1,salary1 ถ้าเป็น 02 ก็ลง daysum2,salary2 ประมาณนี้นะครับ
อันนี้ตัวอย่างโค้ดที่ผมทำซึ่งมันไม่ยอมไปลงตามที่ต้องการ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | include ( 'connect.php' ); $strSQL = "INSERT INTO calculation " ; $strSQL .= "(`id`,`id_em`,`name`,`tel`,`level`,`kr_deteil`,`ra_s`,`day_cal`,`salary`,`salary_tax`,`salary_f`) " ; $strSQL .= "VALUES " ; $strSQL .= "('" . $_POST [ "id" ]. "','" . $_POST [ "id_em" ]. "','" . $_POST [ "name" ]. "','" . $_POST [ "tel" ]. "' " ; $strSQL .= ",'" . $_POST [ "level" ]. "','" . $_POST [ "kr" ]. "','" . $_POST [ "ra" ]. "','" . $_POST [ "textdate" ]. "','" . $_POST [ "money" ]. "','" . $_POST [ "tax" ]. "','" . $_POST [ "money_f" ]. "' ) " ; $objQuery = mysql_query( $strSQL ); $taxd = $_POST [ "textdate" ]; $sala = $_POST [ "money_f" ]; $m1 = 01-2017; $m2 = 02-2017; $m3 = 03-2017; $m4 = 04-2017; $m5 = 05-2017; $m6 = 06-2017; $m7 = 07-2017; $m8 = 08-2017; $m9 = 09-2017; $m10 = 10-2017; $m11 = 11-2017; $m12 = 12-2017; //WHERE id = '$_POST[id]'"; if ( $taxd = $m1 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum1 = '$_POST[textdate]' , salary1 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m2 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum2 = '$_POST[textdate]' , salary2 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m3 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum2 = '$_POST[textdate]' , salary2 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m4 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum1 = '$_POST[textdate]' , salary1 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m5 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum2 = '$_POST[textdate]' , salary2 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m6 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum3 = '$_POST[textdate]' , salary3 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m7 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum1 = '$_POST[textdate]' , salary1 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m8 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum2 = '$_POST[textdate]' , salary2 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m9 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum3 = '$_POST[textdate]' , salary3 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m10 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum1 = '$_POST[textdate]' , salary1 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m11 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum2 = '$_POST[textdate]' , salary2 = '$sala' WHERE id = '$_POST[id]' "; } if ( $taxd = $m12 ) { $strSQL = "" ; $strSQL ="UPDATE tax_all SET id_em = '$_POST[id_em]' , name = '$_POST[name]' , daysum3 = '$_POST[textdate]' , salary3 = '$sala' WHERE id = '$_POST[id]' "; $objQuery = "" ; $objQuery = mysql_query( $strSQL ); } |

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
อันข้างบน daysum,salary ซั้มกันอันนี้แก้แล้ว แต่ยังไม่ได้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | if ( $taxd = $m1 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum1` = '$_POST[textdate]' , `salary1` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m2 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum2` = '$_POST[textdate]' , `salary2` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m3 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum3` = '$_POST[textdate]' , `salary3` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m4 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum4` = '$_POST[textdate]' , `salary4` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m5 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum5` = '$_POST[textdate]' , `salary5` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m6 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum6` = '$_POST[textdate]' , `salary6` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m7 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum7` = '$_POST[textdate]' , `salary7` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m8 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name`= '$_POST[name]' , `daysum8` = '$_POST[textdate]' , `salary8` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m9 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum9` = '$_POST[textdate]' , `salary9` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m10 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum10` = '$_POST[textdate]' , `salary10` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m11 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum11` = '$_POST[textdate]' , `salary11` = '$sala' WHERE `id` = '$_POST[id]' "; } if ( $taxd = $m12 ) { $strSQL ="UPDATE tax_all SET `id_em` = '$_POST[id_em]' , `name` = '$_POST[name]' , `daysum12` = '$_POST[textdate]' , `salary12` = '$sala' WHERE `id` = '$_POST[id]' "; } |

ความคิดเห็นที่
2
วิธีการกำหนดคำสั่ง SQL แนะนำใช้เป็นแบบนี้แทน การต่อตัวแปร
1 2 3 | $sql = " // คำสั่ง sql หลายบรรทัดได้ "; |
การกำหนดค่าตัวแปรลักษณะนี้
1 2 | $m1 = 01-2017; echo $m1 ; |
ค่า $m1 จะเป็นการลบค่ากัน ค่าตัวแปร $m1 จะกลายเป็น
-2017 ไม่ใช่ค่าที่ต้องการ ศึกษาเรื่องประเภทตัวแปรใน php
เบื้องต้นเพิ่มเติม http://php.net/manual/en/language.types.php
ควรใช้เป็น $m1 = "01-2017";
1 | if ( $taxd = $m1 ) { |
การเทียบค่าตัวแปรใช้รูปแบบไม่ถูกต้อง การเทียบค่าต้องใช้ ==
ควรเป็น
1 | if ( $taxd == $m1 ) { |
พื้นฐานเกี่ยวกับการเทียบค่าตัวแปร แนะนำศึกษาเพิ่มเติม
Operators -> Logical Operators
ส่วนรูปแบบการบันทึก ใช้วิธีการนี้แทนการใช้ if ได้ ใช้คำสั่ง
SQL ตัวเดียว เปลี่ยนฟิลด์บันทึกตามเงื่อนไขเดือนที่ส่งมา
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php # require_once ( "inc/dbconnect.php" ); $taxd = $_POST [ "textdate" ]; $sala = $_POST [ "money_f" ]; # $taxd = "1-2017" ; list( $taxid_m , $taxid_y ) = explode ( "-" , $taxd ); echo $taxid_m ; $sql = " UPDATE tax_all SET `id_em` = '".$_POST[' id_em ']."' , `name` = '".$_POST[' name ']."' , `daysum $taxid_m ` = '".$_POST[' textdate'].", `salary $taxid_m ` = '$sala' WHERE `id` = '".$_POST[' id ']."' "; echo $sql ; ?> |

ความคิดเห็นที่
3
ผมลอง
แต่มันไม่ยอมลงฐานให้ผมมันขึ้น error Error Save [UPDATE tax_all SET daysum03 = '2017-03-17', salary03 = '23750 บาท', WHERE id = 'oosmosis'] แบบนี้ครับ
1 2 3 4 5 | $sql = "UPDATE tax_all SET daysum $taxid_m = '$taxd' , salary $taxid_m = '$sala' , WHERE id = '$id' "; mysql_query( $sql ); |
แต่มันไม่ยอมลงฐานให้ผมมันขึ้น error Error Save [UPDATE tax_all SET daysum03 = '2017-03-17', salary03 = '23750 บาท', WHERE id = 'oosmosis'] แบบนี้ครับ

ความคิดเห็นที่
4
คำสั่ง SQL ผิดพลากหรือปล่าว
บาท', WHERE id เครื่อง (,) จะต้องไม่มีก่อนคำสั่ง WHERE
คำสั่งควรเป็น
1 2 3 4 | UPDATE tax_all SET daysum03 = '2017-03-17' , salary03 = '23750 บาท' WHERE id = 'oosmosis' |

ความคิดเห็นที่
5
ใช่เลยพึงสังเกตุเห็น ขอบคุณมากๆเลยครับ ถ้าไม่ได้พี่นี่โปรเจคจบคงจะอีกยาวไกล


ขอบคุณทุกการสนับสนุน
![]()