ทำไมผมผสม php search and update database แล้วมันupdate ไม่ได้ครับ
} ปีกาปิดผิดที่ครับ ลองดู
Date :
2013-05-16 18:04:57
By :
Dragons_first
คุณได้ทำปุ่ม submit ไว้หรือเปล่า
ใช่อันนี้หรือไม่ที่คุณต้องการให้มันเป็นปุ่ม submit (ปุ่มแก้ไข)
Code (PHP)
<a href="<?=$_SERVER["PHP_SELF"];?>?Action=Edit&CusID=<?=$objResult["CustomerID"];?>&Budget=<?=$objResult["Budget"];?>">
มันส่งค่าอะไรมาครับ ทราบหรือเปล่า ให้คำตอบตัวเองได้หรือไม่
แล้วลองย้อนกลับไปดูต้นไฟล์ครับ ว่ามันใช้ค่าอะไรในการตรวจสอบคำสั่ง ว่าเป็นการแก้ไข
Code (PHP)
//*** Update Condition ***//
if($_POST["hdnCmd"] == "Update")
{
$strSQL = "UPDATE customer SET ";
$strSQL .="CustomerID = '".$_POST["txtEditCustomerID"]."' ";
$strSQL .=",Name = '".$_POST["txtEditName"]."' ";
$strSQL .=",Email = '".$_POST["txtEditEmail"]."' ";
$strSQL .=",Budget = '".$_POST["txtEditBudget"]."' ";
$strSQL .=",Used = '".$_POST["txtEditUsed"]."' ";
$strSQL .="WHERE CustomerID = '".$_POST["hdnEditCustomerID"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
//header("location:$_SERVER[PHP_SELF]");
//exit();
}
ลองคิดตามดูครับ ว่าต้องใช้อะไรในการตรวจสอบ อะไรที่ผิดไป
Date :
2013-05-16 18:08:18
By :
cookiephp
อ่อ เห็นแล้วครับ
<input name="btnAdd" type="button" value="Use Gift" OnClick="frmMain .hdnCmd.value='Update';frmMain .submit();">
ใช่ไหม
คือใน onclick มันไม่รู้จัก frmMain ครับ
ควรจะเป็น
<input name="btnAdd" type="button" value="Use Gift" OnClick="this.form .hdnCmd.value='Update';this.form .submit();">
Date :
2013-05-16 18:15:39
By :
cookiephp
เปิดเรื่อง
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GIFT</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
ฟอร์ม search
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>Keyword
<input name="Budget" type="text" id="Budget" value="<?=$_GET["Budget"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
ติดต่อ DB จาก Budget
if($_GET["Budget"] != "")
{
$objConnect = mysql_connect("localhost","user","pass") or die("Error Connect to Database");
$objDB = mysql_select_db("name");
ฟังค์ชันอัพเดทกับDB
if($_POST["hdnCmd"] == "Update")
{
$strSQL = "UPDATE customer SET ";
$strSQL .="CustomerID = '".$_POST["txtEditCustomerID"]."' ";
$strSQL .=",Name = '".$_POST["txtEditName"]."' ";
$strSQL .=",Email = '".$_POST["txtEditEmail"]."' ";
$strSQL .=",Budget = '".$_POST["txtEditBudget"]."' ";
$strSQL .=",Used = '".$_POST["txtEditUsed"]."' ";
$strSQL .="WHERE CustomerID = '".$_POST["hdnEditCustomerID"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
//header("location:$_SERVER[PHP_SELF]");
//exit();
}
เรียก DB customer จาก Budget
$strSQL = "SELECT * FROM customer WHERE (Budget LIKE '%".$_GET["Budget"]."%') ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
ฟอร์ม Search จาก Budget
<form name="frmMain" method="post" action="<?=$_SERVER["PHP_SELF"];?>">
<input type="hidden" name="hdnCmd" value="">
<table width="770" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
<th width="71"> <div align="center">Edit </div></th>
</tr>
ค่าที่แสดงทีหลังจากค่า Action=Edit และ CustomerID ที่ฟิลล์เดียวกันกับ Budget และแก้ไขให้ txt EditUsed=0 เมื่อ submit
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<?
if($objResult["CustomerID"] == $_GET["CusID"] and $_GET["Action"] == "Edit")
{
?>
<tr>
<td><div align="center">
<input type="hidden" name="txtEditCustomerID" size="5" value="<?=$objResult["CustomerID"];?>"> <?=$objResult["CustomerID"];?>
<input type="input" name="hdnEditCustomerID" size="5" value="<?=$objResult["CustomerID"];?>">
</div></td>
<td><input type="hidden" name="txtEditName" size="20" value="<?=$objResult["Name"];?>"> <?=$objResult["Name"];?></td>
<td><input type="hidden" name="txtEditEmail" size="20" value="<?=$objResult["Email"];?>"> <?=$objResult["Email"];?></td>
<td align="right"><input type="hidden" name="txtEditBudget" size="5" value="<?=$objResult["Budget"];?>"> <?=$objResult["Budget"];?></td>
<td align="right">
<input type="hidden" name="txtEditUsed" value="0">
</td>
<td colspan="2" align="right"><div align="center">
<input name="btnAdd" type="button" value="Use Gift" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
<input name="btnAdd" type="button" value="Cancel" OnClick="window.location='<?=$_SERVER["PHP_SELF"];?>';">
</div></td>
</tr>
ค่าที่แสดงก่อน อ่านค่ามาจากการ Search ให้ Budget แสดงฟิลล์และกดลิงค์เพื่อไปยังฟอร์มก่อนหน้า
<?
}
else
{
?>
<tr>
<td><div align="center"><?=$objResult["CustomerID"];?></div></td>
<td><?=$objResult["Name"];?></td>
<td><?=$objResult["Email"];?></td>
<td align="right"><?=$objResult["Budget"];?></td>
<td align="right" <? if ($objResult["Used"] == 0) {echo 'bgcolor="red"';} else {echo 'bgcolor="yellow"';} ?>> <?=$objResult["Used"];?></td>
<td align="center">
<a href="<?=$_SERVER["PHP_SELF"];?>?Action=Edit&CusID=<?=$objResult["CustomerID"];?>&Budget=<?=$objResult["Budget"];?>">
<? if ($objResult["Used"] == 1) {echo 'Edit';} else {echo '';} ?>
</a>
</td>
</tr>
จบครับ
<?
}
}
?>
</table>
</form>
<?
mysql_close($objConnect);
}
?>
</body>
</html>
ไม่แน่ใจว่าเข้าใจถูกหรือเปล่าครับ คือ Search ได้ กด Edit ได้ แต่กดปุ่ม Use Gift แล้วค่า txtEditUsed ไม่เปลี่ยนเป็น 0
ขอบคุณครับ
Date :
2013-05-16 18:40:45
By :
phomzz
คือผมตอบคำถามให้แล้วครับ ดูหน่อยสิครับ
No.3 น่ะ - -
Date :
2013-05-16 18:50:04
By :
cookiephp
ขอบคุณสำหรับความเห็นครับ
แต่ลองแล้วครับ
Code (PHP)
<input name="btnAdd" type="button" value="Use Gift" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
เปลี่ยนเป็น
Code (PHP)
<input name="btnAdd" type="button" value="Use Gift" OnClick="this.form.hdnCmd.value='Update';this.form.submit();">
ได้ผลเหมือนเดิมครับ txtEditUsed หรือตัว Used ไม่ยอมเปลี่ยนเป็น 0 เลยครับ
Date :
2013-05-16 18:55:59
By :
phomzz
แต่ฟิลด์อื่นๆ แก้ไขได้เหรอครับ
Date :
2013-05-16 19:03:29
By :
cookiephp
ฟิลด์อื่นๆ ค่ามันเปลี่ยนเหรอครับ
เพราะถ้าอันอื่นเปลี่ยน Used ก็ต้องเปลี่ยนด้วย ก็เห็นอยู่ว่าถ้า if($_POST["hdnCmd"] == "Update") เป็นจริง
ก็จะต้องมีการเปลี่ยนแปลงค่า Used เป็น 0 แน่นอน (ตามค่าของ textEditUsed ที่เป็น 0 เสมอ)
Code (PHP)
// มันมีการทำส่วนนี้เกิดขึ้นจริงหรือเปล่า ลองเช็คดูด้วย echo ครับ
if($_POST["hdnCmd"] == "Update")
{
echo "Updated";
$strSQL = "UPDATE customer SET ";
$strSQL .="CustomerID = '".$_POST["txtEditCustomerID"]."' ";
$strSQL .=",Name = '".$_POST["txtEditName"]."' ";
$strSQL .=",Email = '".$_POST["txtEditEmail"]."' ";
$strSQL .=",Budget = '".$_POST["txtEditBudget"]."' ";
$strSQL .=",Used = '".$_POST["txtEditUsed"]."' ";
$strSQL .="WHERE CustomerID = '".$_POST["hdnEditCustomerID"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
//header("location:$_SERVER[PHP_SELF]");
//exit();
}
Date :
2013-05-16 19:06:38
By :
cookiephp
อันอื่นไม่เปลี่ยนเลยครับผม ต้องการแค่ Used เป็น 0 อย่างเดียวเลย
Date :
2013-05-16 23:07:21
By :
phomzz
ตอนนี้โค้ดที่แก้แล้ว ที่บอกว่าก็ยังไม่ได้ เป็นยังไงครับ ลองโพสต์มาอีกที
Date :
2013-05-18 15:35:56
By :
cookiephp
จริงๆมันไม่มีไรหรอก คุณไปวางผิดตำแหน่งครับลองดูโค๊ดที่แก้ไปนะครับ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GIFT</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>Keyword
<input type="hidden" name="ac" value="search" />
<input name="Budget" type="text" id="Budget" value="<?=$_GET["Budget"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<?php
$objConnect = mysql_connect("localhost","user","pass") or die("Error Connect to Database");
$objDB = mysql_select_db("name");
//*** Update Condition ***//
if($_POST["ac"] == "Update")
{
$strSQL = "UPDATE customer SET ";
$strSQL .="CustomerID = '".$_POST["txtEditCustomerID"]."' ";
$strSQL .=",Name = '".$_POST["txtEditName"]."' ";
$strSQL .=",Email = '".$_POST["txtEditEmail"]."' ";
$strSQL .=",Budget = '".$_POST["txtEditBudget"]."' ";
$strSQL .=",Used = '".$_POST["txtEditUsed"]."' ";
$strSQL .="WHERE CustomerID = '".$_POST["hdnEditCustomerID"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
//header("location:$_SERVER[PHP_SELF]");
//exit();
}
if($_GET["ac"] != "search")
{
// Search By Name or Email
$strSQL = "SELECT * FROM customer WHERE (Budget LIKE '%".$_GET["Budget"]."%') ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<form name="frmMain" method="post" action="<?=$_SERVER["PHP_SELF"];?>">
<input type="hidden" name="ac" value="Update" />
<input type="hidden" name="hdnCmd" value="">
<table width="770" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
<th width="71"> <div align="center">Edit </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<?
if($objResult["CustomerID"] == $_GET["CusID"] and $_GET["Action"] == "Edit")
{
?>
<tr>
<td><div align="center">
<input type="hidden" name="txtEditCustomerID" size="5" value="<?=$objResult["CustomerID"];?>"> <?=$objResult["CustomerID"];?>
<input type="input" name="hdnEditCustomerID" size="5" value="<?=$objResult["CustomerID"];?>">
</div></td>
<td><input type="hidden" name="txtEditName" size="20" value="<?=$objResult["Name"];?>"> <?=$objResult["Name"];?></td>
<td><input type="hidden" name="txtEditEmail" size="20" value="<?=$objResult["Email"];?>"> <?=$objResult["Email"];?></td>
<td align="right"><input type="hidden" name="txtEditBudget" size="5" value="<?=$objResult["Budget"];?>"> <?=$objResult["Budget"];?></td>
<td align="right">
<input type="hidden" name="txtEditUsed" value="0">
</td>
<td colspan="2" align="right"><div align="center">
<input name="btnAdd" type="button" value="Use Gift" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
<input name="btnAdd" type="button" value="Cancel" OnClick="window.location='<?=$_SERVER["PHP_SELF"];?>';">
</div></td>
</tr>
<?
}
else
{
?>
<tr>
<td><div align="center"><?=$objResult["CustomerID"];?></div></td>
<td><?=$objResult["Name"];?></td>
<td><?=$objResult["Email"];?></td>
<td align="right"><?=$objResult["Budget"];?></td>
<td align="right" <? if ($objResult["Used"] == 0) {echo 'bgcolor="red"';} else {echo 'bgcolor="yellow"';} ?>> <?=$objResult["Used"];?></td>
<td align="center">
<a href="<?=$_SERVER["PHP_SELF"];?>?Action=Edit&CusID=<?=$objResult["CustomerID"];?>&Budget=<?=$objResult["Budget"];?>">
<? if ($objResult["Used"] == 1) {echo 'Edit';} else {echo '';} ?>
</a>
</td>
<!-- <td align="center"><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='<?=$_SERVER["PHP_SELF"];?>?Action=Del&CusID=<?=$objResult["CustomerID"];?>';}">Delete</a></td>
-->
</tr>
<?
}
}
?>
</table>
</form>
<?
mysql_close($objConnect);
}
?>
</body>
</html>
Date :
2013-05-18 15:36:56
By :
Dragons_first
ขอบคุณคุณ อ้นคุง มากครับ
แก้ไขได้แล้ว แต่ต้องตัดบรรทัดนี้ออก <input type="hidden" name="ac" value="search" />
ขอบคุณมากๆครับ
ประวัติการแก้ไข 2013-05-18 16:46:58
Date :
2013-05-18 15:42:31
By :
phomzz
Load balance : Server 05