[英]PHP SQL updating product in multiple category
I want to add product in multiple categories in php. 我想在php中添加多个类别的产品。 After lot of search/research on this I am able to add products in multiple categories but its not working while updating/changing product categories on update page .
经过大量搜索/研究之后,我能够添加多个类别的产品,但是在更新页面上更新/更改产品类别时,它不起作用。
MY DB structure is as: 我的数据库结构如下:
PRODUCTTABLE
_____________________________________________
| pid | pname | price | pdetails |
-----------+---------------+-------+----------+
CATEGORYTABLE
______________________________________
| id | catname | catslug |
-----------+---------------+----------+
PRODUCT2CAT
____________________________
| product_id | cat_id |
-----------+----------------+
Code used on ADD PRODUCT page:(only relevent to question) 在“添加产品”页面上使用的代码:(仅涉及问题)
<form method="post">
...........
echo "<input type=\"checkbox\" name=\"pcateg[]\" value=\"$catid\" /> $catnm<br />";
...........
if(isset($_POST["submit"])) {
.........
.............
$pc2=$_POST["pcateg"];
$query1 = "insert into producttable(pname,price,image,pdetails) values('$pn','$p','$img','$pd')";
mysql_query($query1);
$prdid = mysql_insert_id();
foreach($pc2 as $key=>$values)
{
$query2 = "INSERT INTO product2cat(product_id,cat_id) VALUES('$prdid','$values') ";
$result2 = mysql_query($query2);
}
}
When I Add Product, code is working well and insert selected categories ID in PRODUCT2CAT table. 当我添加产品时,代码运行良好,并在PRODUCT2CAT表中插入了选定的类别ID。
Code used on UPDATE PRODUCT Page is: UPDATE PRODUCT Page上使用的代码是:
<form method="post">
...........
while($ans=mysql_fetch_array($cresult))
{
$selected = "";
$catId = $ans['id'];
$catNm = $ans['catname'];
if ($catId == $categ) {
$selected = "checked";
}
echo "<input type=\"checkbox\" name=\"pcateg[]\" value=\"$catId\" $selected /> $catNm<br />";
}
........
if(isset($_POST["submit"])) {
.........
.............
$query1="UPDATE producttable SET pname='$pn', price='$p', image='$img', pdetails='$pd' WHERE pid=$prid";
mysql_query($query1);
foreach($pc2 as $key=>$values)
{
$query2 = "UPDATE product2cat SET cat_id='$values' WHERE product_id=$prid";
$result2 = mysql_query($query2);
}
}
Update $query2 is not working. 更新$ query2无法正常工作。
Or I have to use 2 queries 1st to delete old records and then insert new record. 或者我必须使用2查询1删除旧记录,然后插入新记录。 How to use query in such situation so as to del/update selected categories on product update.
在这种情况下如何使用查询,以便在产品更新时删除/更新所选类别。
I also want to display old categories as preselected checkbox on update page. 我还想将旧类别显示为更新页面上的预选复选框。 $selected = "checked" It works on single category But how to do this in multiple check.
$ selected =“ checked”它适用于单个类别,但是如何在多个检查中执行此操作。
INSERT INTO table_name ('col1', 'col2') VALUES (1, 2), (2, 3), (3, 4)
would insert 3 rows INSERT INTO table_name ('col1', 'col2') VALUES (1, 2), (2, 3), (3, 4)
将插入3行 Something like that might work: 这样的事情可能会起作用:
$queryu = "INSERT INTO product2cat(product_id,cat_id) VALUES ";
$insertValues = array();
foreach($pc2 as $key=>$values) {
$insertValues[]= "('$prid','$values')";
}
$queryu .= implode(',', $insertValues);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.