|
|
|
รบกวนช่วยดูโค้ดให้ด้วยค่ะ มันทำงานผิดพลาดไปหน่อยค่ะ เกียวกับการอัพเดท |
|
|
|
|
|
|
|
Code (PHP)
<?
include('../config/connectdb.php');
if ($_POST["hdnCmd"] == 'Update')
{
for($i=0; $i<count($_POST["hddID"]); $i++){
$strSQL2 = "update member set ";
$strSQL2 .="Name = '".$_POST["ttName"][$i]."' ";
$strSQL2 .=", Address = '".$_POST["ttAddress"][$i]."' ";
$strSQL2 .=", Country = '".$_POST["ttCountry"][$i]."' ";
$strSQL2 .=" where ID = ".$_POST["hddID"][$i]."";
$objQuery2 = mysql_query($strSQL2) or die(mysql_error());
}
}
$strSQL = "SELECT * from member ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<form name="frmMain" method="post" action="<?=$_SERVER["REQUEST_URI"];?>">
<input type="hidden" name="hdnCmd" value="">
<table width="800" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td> </td>
<td><strong>Date</strong></td>
<td><strong>Name</strong></td>
<td><strong>Address</strong></td>
<td><strong>Country</strong></td>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td align="center"><input name="hddID[]" type="hidden" value="<?=$objResult["ID"];?>" /><label>
<input type="submit" name="button" id="button" value="Save" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
</label></td>
<td><?=$objResult["Dates"];?></td>
<td><input name="ttName[]" type="text" value="<?=$objResult["Name"];?>" /></td>
<td><input name="ttAddress[]" type="text" value="<?=$objResult["Address"];?>" /></td>
<td><input name="ttCountry[]" type="text" value="<?=$objResult["Country"];?>" /></td>
</tr>
<?
}
?>
</table>
</form>
<?
mysql_close();
?>
|
|
|
|
|
Date :
2011-06-17 11:34:28 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูจาก Code แล้วก็ไม่น่าจะมีอะไรผิดพลาดครับ ลองเอาค่า SQL ออกมาดูครับ
Code (PHP)
$objQuery2 = mysql_query($strSQL2);
echo $strSQL2;
|
|
|
|
|
Date :
2011-06-17 11:54:59 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ตามคุณ Unidentifer สามารถทำงานได้ค่ะ แต่กดปุ่มSaveตัวไหนก็ได้ มันจะUpdateข้อมูลทั้งหมดที่มี
แต่ว่าถ้าทำแบบนี้ข้อมูลมีเป็นร้อยแถวแล้ว เราเผลอกดผิดเลือกบางแถว ถ้ากดUpdateเฉพาะแถวที่ถูก แถวที่เลือกผิดมันก็จะUpdateไปด้วยค่ะ
มีวิธีอื่นมั๊ยคะ Update เฉพาะแถวนั้น
คุณ mr.win ค่ะ echo ออกมา มันจะได้เป็น Update member set Name = '', Address = '', Country = '' where ID = แถวที่สุดท้ายเสมอ
คือ Update ส่วนสุดท้ายอย่างเดียว ถึงแม้ว่าจะกดปุ่ม Update ที่รายการแรกก็ตาม
|
ประวัติการแก้ไข 2011-06-17 14:25:44
|
|
|
|
Date :
2011-06-17 14:23:57 |
By :
pink22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ยากครับ เอา hddID ออกไปวางนอกลูป while ครับและเขียนโค้ดเพิ่มเติมที่ onclick นิดหน่อย
<?
include('../config/connectdb.php');
if ($_POST["hdnCmd"] == 'Update')
{
$selectedUpdate = $_POST["hddID"];
$strSQL2 = "update member set ";
$strSQL2 .="Name = '".$_POST["ttName"][$selectedUpdate]."' ";
$strSQL2 .=", Address = '".$_POST["ttAddress"][$selectedUpdate]."' ";
$strSQL2 .=", Country = '".$_POST["ttCountry"][$selectedUpdate]."' ";
$strSQL2 .=" where ID = '$selectedUpdate' ";
$objQuery2 = mysql_query($strSQL2) or die(mysql_error());
}
$strSQL = "SELECT * from member ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<form name="frmMain" method="post" action="<?=$_SERVER["REQUEST_URI"];?>">
<input type="hidden" name="hdnCmd" value="">
<table width="800" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td> </td>
<td><strong>Date</strong></td>
<td><strong>Name</strong></td>
<td><strong>Address</strong></td>
<td><strong>Country</strong></td>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td align="center"><label>
<input type="submit" name="button" id="button" value="Save" OnClick="frmMain.hdnCmd.value='Update';frmMain.hddID.value='<?=$objResult["ID"];?>';frmMain.submit();">
</label></td>
<td><?=$objResult["Dates"];?></td>
<td><input name="ttName[<?=$objResult["ID"];?>]" type="text" value="<?=$objResult["Name"];?>" /></td>
<td><input name="ttAddress[<?=$objResult["ID"];?>]" type="text" value="<?=$objResult["Address"];?>" /></td>
<td><input name="ttCountry[<?=$objResult["ID"];?>]" type="text" value="<?=$objResult["Country"];?>" /></td>
</tr>
<?
}
?>
</table>
<input name="hddID" type="hidden" value="" />
</form>
<?
mysql_close();
?>
|
|
|
|
|
Date :
2011-06-17 14:49:21 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|