มีปัญหา โปรแกรมไม่อัพเดทข้อมูลครับ เป็นการแก้ไขข้อมูลนะครับ
ผมwhere แล้วครับได้แบบนี้ลองเปลี่ยนแบบนี้ แต่ข้อมูลมันไม่อัพเดทให้แต่มันได้เป็น UPDATE complete แล้วครับ
ซึ้งถ้าผมเปลี่ยนจาก '$Firstname' ให้เป็นค่าที่รับมาจากฟอร์มแก้ไขเป็น '".$_POST["Firstname"]."' ก็เช่นเดียวกันครับ แต่ไม่แน่ใจว่าwhere ID="";
Code (PHP)
<?php
include("connect.php");
$str = " update username set Firstname='$Firstname' where ID='$ID' ";
$str = " update username set Lastname='$Lastname' where ID='$ID' ";
$str = " update username set Nickname='$Nickname' where ID='$ID' ";
$str = " update username set Age='$Age' where ID='$ID' ";
$str = " update username set Country='$Country' where USername='$ID' ";
$str = " update username set Email='$Email' where ID='$ID' ";
$str = " update username set Telephon='$Telephon' where ID='$ID' ";
$query = mysql_query($str);
if($query)
{
echo "UPDAT complete";
}
else
{
echo "UPDATE not complete";
}
mysql_close($connect);
?>
Date :
2010-12-01 14:20:19
By :
kenghockey
โอ๊ว กลับไปดูตัวอย่างก่อนน่ะครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<body>
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "UPDATE customer SET ";
$strSQL .="CustomerID = '".$_POST["txtCustomerID"]."' ";
$strSQL .=",Name = '".$_POST["txtName"]."' ";
$strSQL .=",Email = '".$_POST["txtEmail"]."' ";
$strSQL .=",CountryCode = '".$_POST["txtCountryCode"]."' ";
$strSQL .=",Budget = '".$_POST["txtBudget"]."' ";
$strSQL .=",Used = '".$_POST["txtUsed"]."' ";
$strSQL .="WHERE CustomerID = '".$_GET["CusID"]."' ";
$objQuery = mysql_query($strSQL);
if($objQuery)
{
echo "Save Done.";
}
else
{
echo "Error Save [".$strSQL."]";
}
mysql_close($objConnect);
?>
</body>
</html>
Date :
2010-12-01 14:25:51
By :
webmaster
ไปอ่านนี่ก่อนครับ
https://www.thaicreate.com/tutorial/sql-update.html
$str = " update username set Firstname='$Firstname' where ID='$ID' ";
$str = " update username set Lastname='$Lastname' where ID='$ID' ";
$str = " update username set Nickname='$Nickname' where ID='$ID' ";
$str = " update username set Age='$Age' where ID='$ID' ";
$str = " update username set Country='$Country' where USername='$ID' ";
$str = " update username set Email='$Email' where ID='$ID' ";
$str = " update username set Telephon='$Telephon' where ID='$ID' ";
ผิดแน่ๆ เพราะสุดท้าย $sql = update username set Telephon='$Telephon' where ID='$ID'
ถ้า ค่ามาครบ ยังไงก็อัปเดทแค่ฟิวเดียวอยู่ดี อ่านพื้นฐานในบทเรียนด้วยจะดีมาก (บทเรียน PHP อ่านเถอะ)
Date :
2010-12-01 14:28:12
By :
PlaKriM
คือผมงง ว่า
Code (PHP)
'".$_GET["CusID"]."'
ทําไมต้องGET ถ้าเป็นPOSTได้ไหม คือผมอ่านกลับไปกลับมาในบทเรียนก็ยัง งง ครับ
Date :
2010-12-01 15:40:13
By :
kenghockey
อ่านเรื่อง GET POST ในบทเรียนหรือยังล่ะคะ ^ ^
ตามไปอ่านเลยค่ะ POST GET
ประวัติการแก้ไข 2010-12-01 17:23:28
Date :
2010-12-01 17:20:55
By :
ultrasiam
อ่ออันนั้นบนกระทู้อิอิผิดเลยเขียนเป็นแบบนี้ ผมtest แค่ Firstnameครับ สงสัยว่า
Code (PHP)
where Username = '$Username'
แล้วแต่มันไม่ไปที่ชื่อยูสเซอร์นั้น ยูสเซอร์ที่เทส คือkeng
ถ้าผมเปลี่ยนจาก Username = '$Username' ตรง $Username เป็น'keng' มันจะอัพเดทให้ครับอ่านบทเรียนกับหนังสือไม่เข้าใจว่าทําตามลองก็แล้ว ทําไมมันไ่แก้อ่ะครับ ถ้า$Username เพราะระบุไปที่ ยูสเซอร์นั้น ที่ต้องการแก้ไข ในไอดีที่ล๊อคอินอยู่ในระบบ ผมผิดพลาดตรงไหนครับ
test.php
Code (PHP)
<?php
if($_POST)
{
$Firstname = $_POST['Firstname'];
include("connect.php");
$str = "UPDATE username SET Firstname = '$Firstname' where Username = '$Username'";
$query = mysql_query($str);
if($query)
{
echo "UPDATE complete";
}
else
{
echo "NOT UPDATE complete";
}
}
?>
ฟอร์มแก้ไขครับ
Code (PHP)
<?php
session_start();
if(!session_is_registered("login_true"))
{
echo "<meta http-equiv='refresh' content='0;url=login.html'>" ;
exit() ;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
include("connect.php");
$str = ("select * from username where Username='$login_true'");
$query = mysql_query($str);
$result = mysql_fetch_array($query);
?>
<form method="post" action="edit.php">
<table>
<tr>
<td>Username</td>
<td><?php echo $result["Username"];?></td>
</tr>
<tr>
<td>Firstname</td>
<td><input type="text" name="Firstname" value="<?php echo $result["Firstname"];?>" /></td>
</tr>
<tr>
<td>Lastname</td>
<td><input type="text" name="Lastname" value="<?php echo $result["Lastname"];?>" /></td>
</tr>
<tr>
<td>Nickname</td>
<td><input type="text" name="Nickname" value="<?php echo $result["Nickname"];?>" /></td>
</tr>
<tr>
<td>Age</td>
<td><input type="text" name="Age" value="<?php echo $result["Age"];?>" /></td>
</tr>
<tr>
<td>Country</td>
<td><input type="text" name="Country" value="<?php echo $result["Country"];?>" /></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="Email" value="<?php echo $result["Email"];?>" /></td>
</tr>
<tr>
<td>Telephon</td>
<td><input type="text" name="Telephon" value="<?php echo $result["Telephon"];?>" /></td>
</tr>
</table>
<input type="submit" name="Submit" value="edit" />
</form>
</body>
</body>
</html>
มันจะมีปัญหากับ $login_true ด้วยรึป่าวครับ เพราะ จากฟอร์สมัครสมาชิกผมให้ Username ที่สมัคร คือ$Username ไปเก็บไว้ในตัวแปร $login_true
ประวัติการแก้ไข 2010-12-02 11:11:30
Date :
2010-12-02 11:08:12
By :
kenghockey
Code (PHP)
<?php
if($_POST)
{
$Firstname = $_POST['Firstname'];
include("connect.php");
$str = "UPDATE username SET Firstname = '$Firstname' where Username = '$Username'";
$query = mysql_query($str);
if($query)
{
echo "UPDATE complete";
}
else
{
echo "NOT UPDATE complete";
}
}
?>
จากโค้ดนี้ $Username มาจากไหนคะ ไม่เห็นมีเลย
Date :
2010-12-02 11:21:51
By :
ultrasiam
คือที่ผมเข้าใจว่า where เหมือนบอกตําแหน่งที่จะอัพเดท เลยให้ไปที่ Username = $Username คือ Username ในตารางคือ keng
แต่มาจากไหนนั้นผมดูจากตัวอย่างมันใช้ป็น array แต่ผมไม่ได้ใช้แบบนั้นเลย งง
อ่อจากฟอร์ม
<td><?php echo $result["Username"];?></td>
ตรงนี้มันไม่ได้บอกแอตทิบิ้ว ใช่ป่ะครับมันแค่ดึงมา เวลาwhereมันเลยไม่รู้อันนี้เกี่ยวป่ะครับ
Date :
2010-12-02 11:39:43
By :
kenghockey
ได้แล้วครับขอบคุณครับ ผมไม่ได้บอกแอตทิบิ้วจริงๆด้วย name="Username"
Date :
2010-12-02 11:49:57
By :
kenghockey
มาไม่ทัน....ได้แล้วก็ยินดีด้วยค่ะ ^ ^
Code (PHP)
$str = "UPDATE username SET Firstname = '$Firstname' where Username = '$Username'";
จาก statement นี้ คุณจะอัพเดทตารางชื่อ username โดยกำหนดให้ ฟิวด์ Firstname มีค่าเท่ากับตัวแปร $Firstname โดยมีเงื่อนไขคือ field Username ของเรคคอร์ดนั้น ต้องมีค่าเท่ากับ ตัวแปร $Username
จากโค้ดของคุณ
Code (PHP)
<?php
if($_POST)
{
$Firstname = $_POST['Firstname'];
include("connect.php");
$str = "UPDATE username SET Firstname = '$Firstname' where Username = '$Username'";
$query = mysql_query($str);
if($query)
{
echo "UPDATE complete";
}
else
{
echo "NOT UPDATE complete";
}
}
?>
เรารู้แล้วว่าตัวแปร $Firstname ได้ค่ามาจาก $Firstname = $_POST['Firstname']; ซึ่งก็คือค่าที่โพสมาจาก Form ทีนี้ คำถามก็คือว่า
แล้วตัวแปร $Username ล่ะ เอาค่ามาจากไหน และจากโค้ดนี้
Code (PHP)
<?php
session_start();
if(!session_is_registered("login_true"))
{
echo "<meta http-equiv='refresh' content='0;url=login.html'>" ;
exit() ;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
include("connect.php");
$str = ("select * from username where Username='$login_true'");
$query = mysql_query($str);
$result = mysql_fetch_array($query);
?>
<form method="post" action="edit.php">
<table>
<tr>
<td>Username</td>
<td><?php echo $result["Username"];?></td>
</tr>
<tr>
<td>Firstname</td>
<td><input type="text" name="Firstname" value="<?php echo $result["Firstname"];?>" /></td>
</tr>
<tr>
<td>Lastname</td>
<td><input type="text" name="Lastname" value="<?php echo $result["Lastname"];?>" /></td>
</tr>
<tr>
<td>Nickname</td>
<td><input type="text" name="Nickname" value="<?php echo $result["Nickname"];?>" /></td>
</tr>
<tr>
<td>Age</td>
<td><input type="text" name="Age" value="<?php echo $result["Age"];?>" /></td>
</tr>
<tr>
<td>Country</td>
<td><input type="text" name="Country" value="<?php echo $result["Country"];?>" /></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="Email" value="<?php echo $result["Email"];?>" /></td>
</tr>
<tr>
<td>Telephon</td>
<td><input type="text" name="Telephon" value="<?php echo $result["Telephon"];?>" /></td>
</tr>
</table>
<input type="submit" name="Submit" value="edit" />
</form>
</body>
</body>
</html>
คุณบอกว่าคุณเก็บค่า username ไว้ในตัวแปร $login_true คิดว่าน่าจะเป็น SESSION ใช่ไหมคะ งั้นก็เอาตัวแปรนี้ไปใช้แทน $Username เลยค่ะ
ประวัติการแก้ไข 2010-12-02 11:55:43
Date :
2010-12-02 11:53:29
By :
ultrasiam
เพิ่มเติม
if($query)
{
echo "UPDATE complete";
}
else
{
echo "NOT UPDATE complete";
}
ตรงนี้ใช้
if(mysql_affected_rows())
{
echo "UPDATE complete";
}
else
{
echo "NOT UPDATE complete";
}
แทนจะดีกว่า และจะให้ที่สุดใส่ link identify ให้มันด้วย
Date :
2010-12-02 12:06:08
By :
PlaKriM
คือว่าแต่ทําไมมันอัพเดทไม่ทุกฟิลด์ มันจะอัพเดท ฟิลด์สุดท้าย แบบโค๊ดต่อไปนี้ คือถ้าเราแก้ไข Firstname กับ Lastname มันจะอัพเดทอันสุดท้ายอย่างเดียวคือ Lastname ไม่ว่าจะเพิ่ม Nickname อะไรต่อมาอีกมันก็จะอัพเดทอันสุดท้ายอยู่ดี แบบนี้ต้องทํายังไงครับ
Code (PHP)
<?php
if($_POST)
{
$Firstname = $_POST['Firstname'];
$Lastname = $_POST['Lastname'];
include("connect.php");
$str = "UPDATE username SET Firstname = '$Firstname' where Username = '$Username'";
$str = "UPDATE username SET Lastname = '$Lastname' where Username = '$Username'";
$query = mysql_query($str);
if($query)
{
echo "UPDATE complete";
}
else
{
echo "NOT UPDATE complete";
}
}
?>
ประวัติการแก้ไข 2010-12-02 12:57:28
Date :
2010-12-02 12:56:19
By :
kenghockey
ไม่ทันแหละผมแก้แล้วอิอิ ตอนแรกลองแบบไม่ได้เว้นวรรค Firstname = '$Firstname' , Lastname = '$Lastname' อาจจะต้องเว้นวรรค เหมือนมันdebug
Code (PHP)
<?php
if($_POST)
{
$id = $_POST['id'];
$Firstname = $_POST['Firstname'];
$Lastname = $_POST['Lastname'];
include("connect.php");
$str = " UPDATE username SET Firstname = '$Firstname' , Lastname = '$Lastname' where id = '$id' ";
$query = mysql_query($str);
if($query)
{
echo "UPDATE complete";
}
else
{
echo "NOT UPDATE complete";
}
}
?>
Date :
2010-12-02 13:31:03
By :
kenghockey
Load balance : Server 05