簡體   English   中英

PHP SQL更新產品中的多個類別

[英]PHP SQL updating product in multiple category

我想在php中添加多個類別的產品。 經過大量搜索/研究之后,我能夠添加多個類別的產品,但是在更新頁面上更新/更改產品類別時,它不起作用。

我的數據庫結構如下:

PRODUCTTABLE
 _____________________________________________
|    pid    |      pname   | price | pdetails |
-----------+---------------+-------+----------+

CATEGORYTABLE
 ______________________________________
|    id    |      catname   | catslug |
-----------+---------------+----------+

PRODUCT2CAT
 ____________________________
|  product_id   |   cat_id  |
-----------+----------------+

在“添加產品”頁面上使用的代碼:(僅涉及問題)

<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);
}

}

當我添加產品時,代碼運行良好,並在PRODUCT2CAT表中插入了選定的類別ID。

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);
    }
  }

更新$ query2無法正常工作。
或者我必須使用2查詢1刪除舊記錄,然后插入新記錄。 在這種情況下如何使用查詢,以便在產品更新時刪除/更新所選類別。

我還想將舊類別顯示為更新頁面上的預選復選框。 $ selected =“ checked”它適用於單個類別,但是如何在多個檢查中執行此操作。

  1. 不要使用mysql_ *不推薦使用
  2. INSERT INTO table_name ('col1', 'col2') VALUES (1, 2), (2, 3), (3, 4)將插入3行

這樣的事情可能會起作用:

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM