gpt4 book ai didi

php - 如果值与另一个表值匹配则更新表行

转载 作者:行者123 更新时间:2023-11-29 10:01:48 24 4
gpt4 key购买 nike

我正在做价格比较的事情,在这个例子中,假设我有 2 张 table 。 产品cpu

产品是所有类别的所有产品的表,它有产品的SKU、产品类型、最低价格、各个商店的价格比较、各个商店的链接比较,以及比较商店的目录号(这样我就可以通过查看商店的目录号来更新价格)。

它看起来像这样(假设我只有 1 个商店,我从中获取产品):

+------------+------+-------+---------------+-----------------+--------------------------+
| SKU | type | price | store_1_price | store_1_catalog | store_1_link |
+------------+------+-------+---------------+-----------------+--------------------------+
| 20q5ekGMLw | 1 | 1064 | 1064 | YD1600BBAEBOX | randomlink.com/linkylink |
+------------+------+-------+---------------+-----------------+--------------------------+

然后我有一个针对每个产品类别的表格,其中存储了有关每个产品的更多详细规范。

例如,表cpus(计算机处理器)将包含产品名称、产品 SKU、CPU 插槽、频率、TDP、内核等...

可视化:

+------------------------------------+-------------+-------+-----------+-------+--------------+----------+
| name | SKU | price | frequency | cores | manufacturer | socket |
+------------------------------------+-------------+-------+-----------+-------+--------------+----------+
| i5-6600K Skylake Quad core  - Tray | 20q5ekGMLw | 1064 | 3.5 | 4 | Intel | LGA-1151 |
+------------------------------------+-------------+-------+-----------+-------+--------------+----------+

现在,我想要更新(如果该 SKU 在产品中)或插入(如果SKU 不在数据库中)。

所以,它应该是这样的:

$checkdb= $conn->query("SELECT * FROM `products` WHERE `store_1_catalog`='".$catalog."'");
if($checkdb->num_rows==0)
{
//if product not in db,add it
}
else{ //products in database, update it.
//update price in 'cpus' table where the SKU is the same SKU whose catalog already exists in the 'products' table
}

我已经完成了在数据库中找不到该产品的部分,因此我必须添加它。我需要更新产品的部分是我遇到困难的地方,如何更新 'cpus' 表中的价格,其中 SKU'products' 表中已存在其目录的相同 SKU

最佳答案

如果变量 $sku 中有可用的 SKU,则可以使用以下查询 -

更新 cpus SET 价格 =(从产品中选择价格 WHERE SKU = '$sku')WHERE SKU = '$sku';

查看您的代码,我建议您执行以下操作 -

$checkdb = $conn->query("SELECT * FROM `products` WHERE `store_1_catalog`='".$catalog."'");

if($checkdb->num_rows==0)
{
//if product not in db,add it
}
else{
//products in database, update it.
//update price in 'cpus' table where the SKU is the same SKU whose catalog already exists in the 'products' table

$row = $checkdb->fetch_array(MYSQLI_ASSOC);
$sku = $row["SKU"];
$conn->query("UPDATE cpus SET price = (SELECT price from products WHERE SKU = '$sku') WHERE SKU = '$sku'");
}

请注意,代码可能会损坏,因为它未经测试。如果确实如此,我将立即使用经过测试的代码进行更新。

关于php - 如果值与另一个表值匹配则更新表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52797094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com