สอบถามการแก้ไขข้อมูลจากตารางฐานข้อมูลคะ เป็นการแก้ไขสินค้าแต่มัน UPDATE ไม่ได้ (PHP)
มันมีปัญหาอยู่ที่หน้าที่3 อะคะ หน้า test.php
อันนี้เป็นหน้าโชว์สินค้า ชื่อ show-product.php
Code (PHP)
<?
include "top_menu_admin.php";
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<body><br>
<table width="1000" height="177" border="0">
<tr>
<td><a href="insert-product.php">เพิ่มข้อมูลสินค้า</a></td>
</tr>
<tr>
<td width="886"><h1>FOR YOU STORE<br>
</h1>
<table width="700" border="1" align="center">
<tr bgcolor="#E1FD8E" align="center">
<td>ชื่อสินค้า</td>
<td>ประเภทสินค้า</td>
<td>ชนิดดอกไม้</td>
<td>ราคา</td>
<td>รูปภาพ</td>
<td>แก้ไข</td>
<td>ลบ</td>
</tr>
<?
include "con_sql.php";
$sql = "select * from products inner join categories where products.cat_id = categories.cat_id order by pro_id desc ";
$ex = mysql_query($sql, $conn);
while($rs=mysql_fetch_array($ex)) {
?>
<tr align="center">
<td><?=$rs[pro_name]?></td>
<td><?=$rs[cat_name]?></td>
<td><?=$rs[pro_type]?></td>
<td><?=$rs[pro_price]?></td>
<td><img src="images/<?=$rs[pro_image]?>" width="80"></td>
<td><a href=show-product-edit.php?id=<?=$rs[pro_id]?>>แก้ไข</a></td>
<td><a href=show-product-del.php?id=<?=$rs[pro_id]?> onClick="return confirm('ยืนยันการลบข้อมูล?')">ลบ</a></td>
</tr>
<?
}
mysql_close($conn);
?>
</table></td>
</tr>
</table>
<br>
<p align="center"> </p>
<p> </p>
</body>
</html>
หน้าที่2 คือหน้าที่เรียกข้อมูลมาแก้ไข ชื่อ show-product-edit.php
Code (PHP)
<?
include "top_menu_admin.php";
include "con_sql.php";
$id = $_GET["id"];
$sql = "select * from products where pro_id = $id";
$ex = mysql_query($sql, $conn);
$cat=mysql_fetch_array($ex);
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<body><br><br>
<h2 align="center">
<?
echo "<font color=\"#ee8855\">แก้ไขข้อมูล</font>";
?>
</h2>
<form action="test.php" method="post" enctype="multipart/form-data">
<table width="500" border="0" align="center" cellpadding="5">
<tr>
<td>ชื่อสินค้า</td>
<td><input name="pro_name" type="text" value="<?=$cat[pro_name]?>"></td>
</tr>
<tr>
<td>ประเภทสินค้า</td>
<td><select name="pro_cat" >
<option value=""> -- เลือกข้อมูลประเภทสินค้า -- </option>
<?
$sql_cat = "select * from categories";
$ex_cat = mysql_query($sql_cat, $conn);
while ($cat_cat=mysql_fetch_array($ex_cat)) {
if ($cat_cat[cat_id] == $rs[cat_id]) {
?>
<option value="<?=$cat_cat[cat_id]?>" selected><?=$cat_cat[cat_name]?></option>
<?
} else {
?>
<option value="<?=$cat_cat[cat_id]?>"><?=$cat_cat[cat_name]?></option>
<?
}
}
?>
</select>
</td>
</tr>
<td>ชนิดของดอกไม้</td>
<td><select name="pro_type" id="pro_type">
<option><?=$cat[pro_type]?></option>
<option value="ดอกกุหลาบ">ดอกกุหลาบ</option>
<option value="ดอกคาเนชั่น">ดอกคาเนชั่น</option>
<option value="ดอกลิลลี่">ดอกลิลลี่</option>
<option value="ดอกคาร่า">ดอกคาร่า</option>
<option value="ดอกแคทรียา">ดอกแคทรียา</option>
<option value="ดอกทิวลิป">ดอกทิวลิป</option>
<option value="ดอกมัม">ดอกมัม</option>
<option value="ดอกเยอบีร่า">ดอกเยอบีร่า</option>
<option value="ดอกแวนด้า">ดอกแวนด้า</option>
<option value="ดอกหน้าวัว">ดอกหน้าวัว</option>
<option value="ดอกไฮเดรนเยีย">ดอกไฮเดรนเยีย</option>
</select></td>
</tr>
<tr>
<td valign="top">รายละเอียดสินค้า </td>
<td><textarea name="pro_detail" rows="5" ><?=$cat[pro_detail]?></textarea></td>
</tr>
<tr>
<td>ราคาสินค้า</td>
<td><input name="pro_price" type="text" value="<?=$cat[pro_price]?>"></td>
</tr>
<tr>
<td valign="top">รูปภาพของสินค้า</td>
<td><img src="images/<?=$cat[pro_image]?>" width="100"><br><br>
<input name="pimageold" type="hidden" value="<?=$cat[pro_image]?>">
<input name="pimage" type="file"></td>
</tr>
<tr>
<td> </td>
<td><input type="hidden" name="pid" value="<?=$cat[pro_id]?>">
<input type="submit" value="แก้ไขข้อมูล"> <input type="button" value="ยกเลิก" onClick="history.back(0)"></td>
</tr>
</table>
<p> </p>
</form>
<?
mysql_close($conn);
?>
</body>
</html>
ส่วนที่3 ส่วนที่ update ชื่อ test.php คะ
Code (PHP)
<?
include "con_sql.php";
$name = $_POST["pro_name"];
$cat = $_POST["pro_cat"];
$type = $_POST["pro_type"];
$detail = $_POST["pro_detail"];
$price = $_POST["pro_price"];
$pic = $_FILES["pro_image"];
$oldpic = $_POST["pimageold"];
if ($name == ""){
echo "กรุณากรอกชื่อสินค้า";
exit();
} else if ($cat == "") {
echo "กรุณาเลือกประเภทสินค้า";
exit();
}else if ($type == "") {
echo "กรุณาเลือกประเภทสินค้า";
exit();
} else if ($price == "") {
echo "กรุณากรอกราคาสินค้า";
exit();
}
if (empty($pic["size"])){
$filename = $oldpic;
} else {
$filename = $oldpic;
unlink("images/$filename");
$filetemp = $pic["tmp_name"];
copy($filetemp, "images/".$filename);
}
$sql = "insert into products (pro_id, pro_name, cat_id, pro_type, pro_detail, pro_price, pro_image)
values ('', '$name', $cat, '$type', '$detail', $price, '')";
$sql = "update products set pro_name='$name', cat_id=$cat, pro_type=$type, pro_detail='$detail', pro_price=$price, pro_image='$filename' where pro_id=$id";
$ex = mysql_query($sql, $conn);
if($ex){
echo "<meta http-equiv='refresh' content='0; url=categories.php'>";
} else {
echo "<h3>XXX</h3>";
}
mysql_close($conn);
?>
Tag : PHP, MySQL
Date :
2015-04-04 01:39:13
By :
Loogsorn22
View :
1152
Reply :
6
ต้องใช้คำสั่ง UPDATE ครับ ไม่ใช่ INSERT ในหน้า EDIT ข้อมูล
Date :
2015-04-04 01:59:38
By :
deawx
บันทัดที่ 31-32 ไม่ใช้ ให้มาร์คไว้ด้วยนะครับ และ เพิ่มสีแดงบันทัดที่ 34 จะได้รู้ว่า error อะไร
และเพิ่ม สีน้ำตาล เพื่อจะได้รู้ว่า update ได้หรือไม่ได้
Code
31.//$sql = "insert into products (pro_id, pro_name, cat_id, pro_type, pro_detail, pro_price, pro_image)
32.//values ('', '$name', $cat, '$type', '$detail', $price, '')";
33.$sql = "update products set pro_name='$name', cat_id=$cat, pro_type=$type, pro_detail='$detail', pro_price=$price, pro_image='$filename' where pro_id=$id";
34.$ex = mysql_query($sql, $conn) or die (mysql_error($conn) . "<br>[[ $sql ]]") ;
if( mysql_affected_rows($conn)==0) echo 'Can\'t update';
Date :
2015-04-04 09:07:54
By :
Chaidhanan
Load balance : Server 04