|
|
|
สอบถามปัญหานิดนึงครับ เกี่ยวกับการใช้คำสั่ง UPDATE แก้ไขข้อมูล sql |
|
|
|
|
|
|
|
ผมเป็นมือใหม่กำลังทำเว็บครับ ซึ่งก็ศึกษาวิธีใช้คำสั่ง UPDATE จากหลายเว็บแล้ว แต่พอทำจริงมันไม่ทำงาน เลยอยากให้พี่ๆช่วยดูให้หน่อยครับว่าผิดตรงไหน
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แน่นอนว่าคำสั่ง UPDATE ทุกคำสั่งต้องใส่ where ครับ ไม่ใส่มิได้ มิฉะนั้นจะระบุไม่ได้ว่าให้มันไปปรับปรุงอะไร
สิ่งที่เอามา WHERE ต้องเป็นข้อมูลที่ไม่ซ้าในเรคคอร์ดอื่นๆด้วยนั้นคือ PK หรือ ข้อมูลที่เป็นเอกลักษณ์
**ถ้าเอาข้อมูลที่ไม่เป็นเอกลักษณ์มา WHERE มันจะแก้เรคอคอร์ดใดเรคคอร์ดนึงตามอารมณ์ของมัน
สำหรับปัญหาของ จขกท. ไม่ทราบว่าฟอร์มนี้มีลักษณะเป็นการ submit แล้วส่งค่ามาอีกฟอร์มหรือไม่ รับ $_POST มาหรือยังเอ่ย
|
|
|
|
|
Date :
2014-05-07 12:31:56 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าโค้ดมีเท่านี้จริงๆ แสดงว่าหน้าที่ 2 (หน้าบันทึกข้อมูล) จขกท.ไม่ได้ _POST ตัวแปรครับ
_POSTคือการส่งข้อมูลข้ามฟอร์มครับ
https://www.thaicreate.com/php/php-post.html
////////
การใช้ฟังค์ชั่นแก้ไข(update)ในdreamนั้นสะดวกมากครับ ถ้าไม่มีรูปหรือไฟล์อะไรต้องแก้ไข ง่ายมากเลยครับจบในหน้าเดียวด้วย
(ทั้งนี้ทั้งนั้น ก็ต้องศึกษาโค้ดไว้ด้วย เผื่อแก้ไขเพิ่มเติมส่วนใด)
/////////////////////////////////
บอกตรงๆว่าเว็บอื่นแทบจะไม่ต้องเลย เมื่อผมมาเจอเว็บนี้ (ยกเว้นลูกเล่นอื่นๆอ่ะนะ)
ผมมาฝึกงาน อุตสา่ห์ลงทุนซื้อหนังสือเล่มดำที่ซีเอ็ดมา dw+php+css อ่ะ
จนตอนนี้ มันก็กองอยู่ข้างคอมนี่แหละครับ เวลาจะหาอะไรหาในtc เจอก่อนทุกทีเลยอิอิ
|
|
|
|
|
Date :
2014-05-07 14:03:01 |
By :
benzsara |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไหนๆ ก็ใช้ SESSION แล้ว ก็เอา SESSION มาเทียบก็ได้ครับ
Code (PHP)
<?php
session_start();
include"connect.php";
mysqli_query($link,"SET NAMES UTF8");
$sql = "UPDATE login SET name_user = '$name',location = '$address',tel_user = '$telnum',zipcode = '$zipcode',email = '$email' WHERE username = '$_SESSION[username]'";
$query = mysqli_query($link,$sql);
if($query){
echo "<script type='text/javascript'>alert('Edit Completed')</script>";
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=../page/index.php?p=configuser.php\">";
}
?>
ตามที่คุณ meannerss ได้กล่าวไว้ครับ ค่าที่ใช้ควรเป็นค่าที่ไม่ซ้ำกัน หรือเป็น PK (คีย์หลัก) แต่ตามปกติแล้ว Username ก็ไม่น่าจะซ้ำกันได้ และไม่ควรให้มีการแก้ไขนะครับ ในส่วนค่า SESSION ที่เก็บตอน LOGIN ขอแนะนำให้เก็บค่าเป็น ID หรือตัวที่เป็น PK ด้วยก็จะดีนะครับ เพราะในโครงสร้างแบบนี้ ระบบ Web application หรือ Web service ตาราง หรือข้อมูลใน User จะมีผลต่อระบบมากครับ
|
|
|
|
|
Date :
2014-05-07 14:21:56 |
By :
dexjanghan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองหลายวิธีแล้ว มันเหมือนผิดที่เงื่อนไขน่ะครับ ไม่รู้ว่าทำไม ดึงจาก SESSION แล้วก็ไม่ได้ งงมากเลย
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<?php
include"connect.php";
mysqli_query($link,"SET NAMES UTF8");
$sql = "UPDATE login SET name_user = '$name',location = '$address',tel_user = '$telnum',zipcode = '$zipcode',email = '$email' WHERE username = 'admin'";
$query = mysqli_query($link,$sql);
if($query){
echo "<script type='text/javascript'>alert('Edit Completed')</script>";
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=../page/index.php?p=configuser.php\">";
}
?>
ตรงเงื่อนไข WHERE ผมใส่ username ปลายทางตรงๆเลยมันแก้ไขได้ปกติอะครับ แต่ยังไม่รู้ว่า ทำไมใส่เงื่อนไขไม่ได้ T_T
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากโค้ดนี้
Code (PHP)
<?php
include"connect.php";
mysqli_query($link,"SET NAMES UTF8");
$sql = "UPDATE login SET name_user = '$name',location = '$address',tel_user = '$telnum',zipcode = '$zipcode',email = '$email' WHERE username = 'admin'";
$query = mysqli_query($link,$sql);
if($query){
echo "<script type='text/javascript'>alert('Edit Completed')</script>";
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=../page/index.php?p=configuser.php\">";
}
?>
คำถามง่ายๆ เลยนะครับ
ถ้าคุณต้องการเปิดโทรทัศน์ แต่คุณไม่เสียบปลั๊ก คุณจะดูโทรทัศน์ได้ป่าว?
คำตอบคือ ไม่ได้
การใช้งาน $_SESSION ก็เหมือนกัน ถ้าคุณจะใช้ตัวแปรที่อยู่ในรูปแบบ $_SESSION เราก็ต้องประกาศใช้งานมันก่อนทุกหน้าที่ต้องการใช้งาน ก็จะได้เยี่ยงนี้
Code (PHP)
<?php
#ประกาศใช้งาน
session_start();
$username = $_SESSION['username'];
include"connect.php";
mysqli_query($link,"SET NAMES UTF8");
$sql = "UPDATE login SET name_user = '$name',location = '$address',tel_user = '$telnum',zipcode = '$zipcode',email = '$email' WHERE username = '$username' ";
$query = mysqli_query($link,$sql);
if($query){
echo "<script type='text/javascript'>alert('Edit Completed')</script>";
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=../page/index.php?p=configuser.php\">";
}
?>
|
|
|
|
|
Date :
2014-05-07 15:18:45 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|