ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingสคริป php คำสั่ง update sql ทำไมมันไม่ทำงาน ผิดตรงไหนกัน!!
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: สคริป php คำสั่ง update sql ทำไมมันไม่ทำงาน ผิดตรงไหนกัน!!  (อ่าน 1888 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
BlueDragon
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 89
ออฟไลน์ ออฟไลน์

กระทู้: 1,778



ดูรายละเอียด เว็บไซต์
« เมื่อ: 30 สิงหาคม 2016, 13:58:23 »

เป็นสคริป Update ค่า Status มีแค่ 2 กรณี คือ on กับ off ถ้าเดิมเป็น on อยู่คลิกก็จะเปลี่ยนเป็น off, ถ้าเป็น off อยู่คลิกก็จะเปลี่ยนเป็น on การทำงานคือ คลิกแล้วส่งค่า action สำหรับเข้า Loop Update และส่งค่า status เดิม และ id ของ record ข้อมูลไป แต่มันไม่ยอม update แล้ว echo เช็ค loop ก็เข้า loop ถูก ลอง echo คำสั่ง sql ออกมา แล้วลงเอาไปใส่ช่อง SQL ของ phpMyadmin ก็คิวรี่ update ได้ แต่ทำไม สคริปตามด้านล่างถึงไม่อัพเดต คือ ฟ้องว่า Update Status Succesfuly แต่พอกลับไปหน้า list.php สถานะกลับไม่เปลี่ยน ดูใน db ก็เหมือนไม่ได้อัพเดต

ตกม้าตายตรงไหน รบกวนช่วยดูให้หน่อยจ้า


หน้ารายการ list.php
โค๊ด:
<a href="act.php?action=change&status=<?php echo $result[status]; ?>&id=<?php echo $result[e_id]; ?>" onclick="return confirm('กรุณายืนยันอีกครั้ง !!!')">ปุ่มสถานะ</a>


หน้า Action act.php
โค๊ด:
if ($_GET['action'] != '' and $_GET['action'] == 'change') {
$id = $_GET['id'];
     //echo "Action";
     if ($_GET['status'] != '' and $_GET['status'] == 'on') {
          //echo "Action - Change to off";
          $sql_status = "UPDATE $dbname.$table SET $table.status = 'off' WHERE $table.e_id = $id";
          //echo $sql_status;
     } elseif ($_GET['status']!= '' and $_GET['status']== 'off') {
          //echo "Action - Change to on";
          $sql_status = "UPDATE $dbname.$table SET $table.status = 'on' WHERE $table.e_id = $id";
          //echo $sql_status;
     }
 
               if ($sql_status) {
               echo "<script type='text/javascript'>";
               echo "alert('Update Status Succesfuly');";
               echo "window.location = '่list.php'; ";
               echo "</script>";
               }
}

« แก้ไขครั้งสุดท้าย: 30 สิงหาคม 2016, 14:13:41 โดย BlueDragon » บันทึกการเข้า
f206cs
Newbie
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 64



ดูรายละเอียด
« ตอบ #1 เมื่อ: 30 สิงหาคม 2016, 14:14:34 »

ใส่ mysql_query($sql_status); หรือยังครับ
หรือคำสั่งที่ให้เรียกทำงานตามคำสั่ง sql น่ะครับ

เท่าที่ดูรู้สึกจะเขียนแค่คำสั่ง sql ไว้เฉยๆนะครับ

 wanwan044
บันทึกการเข้า
Crosshunter
Newbie
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 47



ดูรายละเอียด
« ตอบ #2 เมื่อ: 30 สิงหาคม 2016, 14:16:28 »

ในหน้า act.php

ไม่ได้มีการเอา $sql_status ไปทำการ query นะคร้าบ


เช่น

mysql_query('$sql_status');


 
บันทึกการเข้า

itzonebox.com กล่องไอทีมีสาระ
BlueDragon
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 89
ออฟไลน์ ออฟไลน์

กระทู้: 1,778



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 30 สิงหาคม 2016, 14:36:34 »

ใส่ mysql_query($sql_status); หรือยังครับ
หรือคำสั่งที่ให้เรียกทำงานตามคำสั่ง sql น่ะครับ

เท่าที่ดูรู้สึกจะเขียนแค่คำสั่ง sql ไว้เฉยๆนะครับ

 wanwan044

ในหน้า act.php

ไม่ได้มีการเอา $sql_status ไปทำการ query นะคร้าบ


เช่น

mysql_query('$sql_status');


 


 wanwan017

ขอบคุณค่ะ ตกม้าตายจริงๆ ด้วย
ไม่ได้เขียนนานๆ ลืมไปเลย ^^

thank +1 ค่ะ
« แก้ไขครั้งสุดท้าย: 30 สิงหาคม 2016, 14:37:12 โดย BlueDragon » บันทึกการเข้า
esanza.com
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 270
ออฟไลน์ ออฟไลน์

กระทู้: 3,673



ดูรายละเอียด
« ตอบ #4 เมื่อ: 30 สิงหาคม 2016, 17:49:21 »

 wanwan024 ต่อไปนี้จะไม่มีวันลืม query แน่นอนครับ
บันทึกการเข้า

ใครต้องการเช่าโฮสที่มี Control Panel ดีๆ
และ Support ดี แนะนำ => โฮสอะตอม
BlueDragon
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 89
ออฟไลน์ ออฟไลน์

กระทู้: 1,778



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 30 สิงหาคม 2016, 18:05:39 »

wanwan024 ต่อไปนี้จะไม่มีวันลืม query แน่นอนครับ


 wanwan004 ใช่เลยค่ะ ไม่ได้ Coding มานาน
ก็คิดอยู่ว่า logic มันถูกหมด ... แบบต้องตกม้าตายแน่ๆ นอน 555+
บันทึกการเข้า
kingofdollars
สมุนแก๊งเสียว
*

พลังน้ำใจ: 95
ออฟไลน์ ออฟไลน์

กระทู้: 830



ดูรายละเอียด
« ตอบ #6 เมื่อ: 30 สิงหาคม 2016, 22:08:00 »

เขียนแบบนี้ระวังโดน SQL INJECTION นะครับ เห็นแล้วเสียวเลยหากไปใช้ในงานสำคัญ


where id='$id'; ตรงนี้ ค่า ID ต้องกรองให้เหลือเฉพาะค่าที่เป็นตัวเลขจริงๆ นะครับ เจอโฮสที่ไม่ดัก escape string นี่หนาวเลยนะครับ
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์