PHPで複数のカテゴリに商品を追加したい。これに関する多くの検索/調査の後、複数のカテゴリに製品を追加できますが、更新ページで製品カテゴリを更新/変更している間は機能しません。
私のDB構造は次のとおりです。
PRODUCTTABLE
_____________________________________________
| pid | pname | price | pdetails |
-----------+---------------+-------+----------+
CATEGORYTABLE
______________________________________
| id | catname | catslug |
-----------+---------------+----------+
PRODUCT2CAT
____________________________
| product_id | cat_id |
-----------+----------------+
ADD PRODUCT ページで使用されるコード:(質問に関連するもののみ)
<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);
}
}
製品を追加すると、コードが正常に機能し、選択したカテゴリ ID が PRODUCT2CAT テーブルに挿入されます。
UPDATE PRODUCT ページで使用されるコードは次のとおりです。
<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);
}
}
$query2 の更新が機能していません。
または、最初に 2 つのクエリを使用して古いレコードを削除し、次に新しいレコードを挿入する必要があります。このような状況でクエリを使用して、製品の更新時に選択したカテゴリを削除/更新する方法。
また、更新ページで古いカテゴリを事前に選択されたチェックボックスとして表示したいと考えています。$selected = "checked" 単一のカテゴリで機能しますが、複数のチェックでこれを行う方法。