注意:
我是php和mysql的新手。
背景信息:
我有+/- 30,000种产品,他们来自7个不同的供应商,他们有很多相同的产品
假设我有1个产品,其中有3个供应商拥有它,我需要以最低价格发布产品,而另外两个产品保持未发布
这是基本的想法,这必须贯穿30,000个产品并检查是否有任何匹配并运行发布功能
SQL设置:
有两个表 xxxx_virtuemart_product 和 xxxx_virtuemart_product_prices
xxxx_virtuemart_product中有三行▬▬▬product_id,product_sku,已发布▬▬▬
xxxx_virtuemart_product_prices中有两行▬▬▬product_id,product_price▬▬▬
我的一点代码:
我有这个小代码,因为我卡住了,我如何检查是否有任何匹配,然后运行查询以更低价格更改产品的公布值?
我知道有一种方法可以使用查询来检查匹配,但不明白该怎么做
$query = "SELECT `product_sku` FROM `xxxx_virtuemart_product`";
$query_run = mysql_query($query) or die (mysql_error());
while($row = mysql_fetch_assoc($query_run)){
foreach ($row as $key => $ps){
}
}
以下代码是检查价格(不是查询只是粗略草稿)
$z = //products price;
$x = //products price;
$c = //products price;
if ($z >= $x && $c >= $x) {
//the this products published value to 1
}else if ($x >= $z && $c >= $z) {
//the this products published value to 1
}else if ($z >= $c && $x >= $c) {
//the this products published value to 1
}
有人可以帮我解决这个问题吗?
感谢您阅读
欢迎任何问题。
答案 0 :(得分:0)
您的问题不是要比较数组而是更多算法。 我会这样试试。 1)SQL查询检索所有产品:sql_products 2)构造一个hashmap,那些密钥是产品SKU(参见:PHP Array)
构造PHP hashmap:使用数组数组。 示例: product_map [] = array();
foreach sql_product的sql_products: - product_map [sql_product [SKU]] [] = array(sql_product [supplier],sql_product [price],sql_product [information]) 循环结束
然后在构建的产品图上再次循环,并按价格对每个产品记录进行排序:这意味着您必须编写一个函数来排序数组(供应商,价格,信息)。
现在您有一张产品地图:SKU =>数组(数组(供应商,价格,信息))