Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามปัญหานิดนึงครับ เกี่ยวกับการใช้คำสั่ง UPDATE แก้ไขข้อมูล sql



 

สอบถามปัญหานิดนึงครับ เกี่ยวกับการใช้คำสั่ง UPDATE แก้ไขข้อมูล sql

 



Topic : 108166



โพสกระทู้ ( 16 )
บทความ ( 0 )



สถานะออฟไลน์




ผมกำลังทำส่วนแก้ไข ข้อมูลสมาชิกครับ ซึ่งผมไปอ่านเรื่องการใช้งานคำสั่ง UPDATE มา ก็คิดว่าคำสั่งผมน่าจะถูกนี่นา แต่พอลองใช้ดู หากผมไม่ใส่ WHERE ตอนท้าย มันแก้ไขข้อมูลได้ครับ แต่จะแก้ทั้งหมด จึงใส่ WHERE ตามรูปแบบที่อ่านมา แต่เมื่อใส่ WHERE เข้าไป สิ่งที่แก้ไข มันไม่ยอมเปลี่ยนตามครับ


ฐานข้อมูลผมจะแบ่งเป็น
username << ใช้เก็บ username
password << อันนี้เก็บ password
name_user << ชื่อผู้ใช้
location << ที่อยู่
tel_user << เบอร์โทร
zipcode << รหัสไปรษณีย์
email << อีเมล


นี่เป็นฟอร์มหน้าที่ให้ผู้ใช้แก้ไขข้อมูลครับ

<?  session_start();
    include"../sql_db/connect.php";
?>

<link rel="stylesheet" href="../css/configuser.css">
<meta charset="UTF-8">
<html>
<head>
    <title></title>
</head>

<?php
    $sql = "SELECT * FROM login WHERE username = '$_SESSION[username]'";
    $query = mysqli_query($link,$sql);
    $row = mysqli_fetch_array($query);
?>

<body>
    <div id="mainbox">
        <div id="headconfig"><b>Edit Profile</b></div>
        <div id="configbox">
            <div id="subheader"><b>เกี่ยวกับบัญชีผู้ใช้</b></div>
            <form method="post" action="../sql_db/saveconfiguser.php">
            <table>
                <tr>
                    <td style="padding-left: 15px">Username : </td>
                    <td id="username" ><input id="username" name="username" disabled value="<? echo"$row[username]"; ?>"></td>
                </tr>
                <tr>
                    <td style="padding-left: 15px">Password : </td>
                    <td><button>เปลี่ยนรหัสผ่าน</button></td>
                </tr>
                <tr>
                    <td id="subheader" colspan="2"><b>ข้อมูลผู้ใช้งาน</b></td>
                </tr>
                <tr>
                    <td style="padding-left: 15px">NAME :</td>
                    <td><input style="width: 180px" type="text" id="name" name="name" required value="<? echo"$row[name_user]"; ?>"></td>
                </tr>
                <tr>
                    <td style="padding-left: 15px;vertical-align: top">Address : </td>
                    <td><textarea style="width: 180px;height: 100px;resize: none" id="address" required name="address"><? echo"$row[location]"; ?></textarea></td>
                </tr>
                <tr>
                    <td style="padding-left: 15px">Zipcode : </td>
                    <td><input style="width: 180px" type="text" id="zipcode" name="zipcode" required value="<? echo"$row[zipcode]"; ?>"></td>
                </tr>
                <tr>
                    <td style="padding-left: 15px">Phone Number : </td>
                    <td><input style="width: 180px" type="telnum" id="telnum" name="telnum" value="<? echo"$row[tel_user]"; ?>" required></td>
                </tr>
                <tr>
                    <td style="padding-left: 15px">E-mail :</td>
                    <td><input style="width: 180px" type="email" id="email" name="email" value="<? echo"$row[email]"; ?>" required></td>
                </tr>
                <tr>
                    <td><button type="submit" id="submit" style="cursor: pointer"><b>SAVE</b></button></td>
                    <td><button type="reset" style="cursor: pointer"><b>CANCEL</b></button></td>
                </tr>
            </table>
            </form>
        </div>
    </div>
</body>
</html>



ส่วนนี่เป็นหน้า UPDATE ข้อมูล

<?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 = '$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\">";
}
?>


อยากให้พี่ๆช่วยดูให้ผมหน่อยครับว่าผมใช้ผิดรูปแบบตรงไหน



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-05-07 12:04:30 By : [email protected] View : 2152 Reply : 10
 

 

No. 1



โพสกระทู้ ( 16 )
บทความ ( 0 )



สถานะออฟไลน์


ผมเป็นมือใหม่กำลังทำเว็บครับ ซึ่งก็ศึกษาวิธีใช้คำสั่ง UPDATE จากหลายเว็บแล้ว แต่พอทำจริงมันไม่ทำงาน เลยอยากให้พี่ๆช่วยดูให้หน่อยครับว่าผิดตรงไหน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-07 12:06:03 By : [email protected]
 


 

No. 2



โพสกระทู้ ( 1,666 )
บทความ ( 0 )



สถานะออฟไลน์


แน่นอนว่าคำสั่ง UPDATE ทุกคำสั่งต้องใส่ where ครับ ไม่ใส่มิได้ มิฉะนั้นจะระบุไม่ได้ว่าให้มันไปปรับปรุงอะไร
สิ่งที่เอามา WHERE ต้องเป็นข้อมูลที่ไม่ซ้าในเรคคอร์ดอื่นๆด้วยนั้นคือ PK หรือ ข้อมูลที่เป็นเอกลักษณ์
**ถ้าเอาข้อมูลที่ไม่เป็นเอกลักษณ์มา WHERE มันจะแก้เรคอคอร์ดใดเรคคอร์ดนึงตามอารมณ์ของมัน

สำหรับปัญหาของ จขกท. ไม่ทราบว่าฟอร์มนี้มีลักษณะเป็นการ submit แล้วส่งค่ามาอีกฟอร์มหรือไม่ รับ $_POST มาหรือยังเอ่ย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-07 12:31:56 By : meannerss
 

 

No. 3



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


พื้นฐาน : https://www.thaicreate.com/php/php-mysql-update-edit-record.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-07 13:49:40 By : apisitp
 


 

No. 4



โพสกระทู้ ( 335 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ถ้าโค้ดมีเท่านี้จริงๆ แสดงว่าหน้าที่ 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
 


 

No. 5



โพสกระทู้ ( 54 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ไหนๆ ก็ใช้ 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
 


 

No. 6



โพสกระทู้ ( 16 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : dexjanghan เมื่อวันที่ 2014-05-07 14:21:56
รายละเอียดของการตอบ ::
ลองแล้วครับ ไม่ได้ แต่ถ้าระบุ username ปลายทางตรงๆเลย มันเปลี่ยนได้ครับ แต่พอใส่ $_session[username] แล้วมันก็เหมือนเดิม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-07 14:39:35 By : [email protected]
 


 

No. 7



โพสกระทู้ ( 16 )
บทความ ( 0 )



สถานะออฟไลน์


ผมลองหลายวิธีแล้ว มันเหมือนผิดที่เงื่อนไขน่ะครับ ไม่รู้ว่าทำไม ดึงจาก SESSION แล้วก็ไม่ได้ งงมากเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-07 14:40:31 By : [email protected]
 


 

No. 8



โพสกระทู้ ( 16 )
บทความ ( 0 )



สถานะออฟไลน์


<?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
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-07 14:43:13 By : [email protected]
 


 

No. 9

Guest


จากโค้ดนี้
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
 


 

No. 10



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : arm8957 เมื่อวันที่ 2014-05-07 15:18:45
รายละเอียดของการตอบ ::
ถ้าเค้าไม่อ่าน มาถึงก็จะลุย ๆ น้ำเต็มแก้ว เทเติมอย่างไรก็หกเลอะเทอะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-08 09:49:46 By : apisitp
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามปัญหานิดนึงครับ เกี่ยวกับการใช้คำสั่ง UPDATE แก้ไขข้อมูล sql
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่