我有一个现有的Prestashop数据库,我对它进行了一些小修改。我创建了一个单独的PHP页面,它从产品表中获取数据(只有我需要的数据),并向我显示所有产品,这些产品一个接一个地存在。我还有一个更新产品的功能,我按下EDIT。
因此,简单来说,我可以为每次点击更新单个产品。但是现在我有大约220种产品,为了更新每种产品的价值(价格),现在,我必须为每种产品点击EDIT,220次。
有没有办法在点击按钮后进行查询以更新所有行?
Bellow我将从剧本中向您展示一些基本部分:
GET功能:
<?php
$strSQL = "SELECT * FROM ps_product";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mysql_fetch_array($objQuery))
{
?>
<!-- HTML CODE -->
<? } ?>
每种产品的更新功能
if($_POST["hdnCmd"] == "Update")
{
$strSQL = "UPDATE ps_product_shop SET ";
$strSQL .="id_product = '".$_POST["txtEditid_product"]."' ";
$strSQL .=",price = '".$_POST["txtEditprice"]."' ";
$strSQL .=",active = '".$_POST["txtEditactive"]."' ";
$strSQL .="WHERE id_product = '".$_POST["hdnEditid_product"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
}
$ _ POST [&#34; hdnEditid_product] 是从表中获取的产品ID值。
请帮助我了解如何制作类似的** UPDATE功能 ** **,它会立即更新所有行(product_id)?< /强>
作为一个例子,我必须解决这段代码:
if($_POST["UPDATEALLPRODUCTS"] == "Update")
{
$strSQL = "UPDATE ps_product_shop SET ";
$strSQL .=",price = '".$_POST["txtEditprice"]."' ";
$strSQL .="WHERE id_product = '".$_POST["hdnEditid_product"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
}
但我必须在这里添加/更改:
$strSQL .="WHERE id_product = '".$_POST["hdnEditid_product"]."' ";
答案 0 :(得分:2)
要将所有行更新为相同的值,请运行此查询
UPDATE ps_product_shop SET price='".$_POST["txtEditprice"]."';
注意:ps_products_shop
中的每个记录都会获得相同的价格值。
答案 1 :(得分:1)
如果您坚持使用单个查询,可以采取一种方法:
<?php
$product_updates = array("1" => "500", "2" => "1299.99");
$sql_query = "UPDATE my_database.products SET price = CASE id ";
foreach ($product_updates as $key => $value) {
$sql_query .= "WHEN '$key' THEN '$value' ";
}
$sql_query .= "END;";
mysql_query($sql_query);
?>
答案 2 :(得分:1)
这个怎么样?
制作如下数组: id =&gt;价格,然后:
$prices = array(
1=>300,
5=>180,
...
);
foreach ($prices as $id => $price) {
$query = "UPDATE ps_product_shop SET price='".$price."' WHERE
id_product='".$id."' ";
mysql_query($query);
}
答案 3 :(得分:1)
我假设页面已经拥有您需要的更新价格/信息,因此它只是将php变量删除
UPDATE ps_product_shop SET price
= CASE
WHEN id_product= $id_product_1
THEN '$edited_price_1'
WHEN id_product = $id_product_2
THEN '$edited_price_2'
如果没有看到表单结构,很难看到正确的变量名称是什么,但希望你可以使用代码并使用它,我必须做类似的事情并让PhP使用这种方法自动调查查询