【发布时间】:2016-05-01 14:48:21
【问题描述】:
大家好,我正在尝试使用 2 个嵌套的 foreach 循环在表中插入/更新数据... 我有桌子 -
1.温度
vendor_ID | 组件 | 数量
2。库存
stock_ID | 组件 | 数量
$query2 = "SELECT * FROM sample.temp";
$rslt = $dbo->query($query2);
if($rslt->rowCount() > 0)
{
foreach($rslt as $item)
{
$Qty = $item['Qty'];
$component = $item['component'];
$vendor_ID = $item['vendor_ID'];
$query5 = "SELECT * FROM sample.stock";
$reslt = $dbo->query($query5);
if($reslt->rowCount() > 0)
{
foreach($reslt as $itm)
{
$Qty1 = $itm['Qty'];
$stock_ID = $itm['stock_ID'];
$component1 = $itm['component'];
if(($vendor_ID!=$stock_ID && $component!=$component1) || ($vendor_ID!=$stock_ID && $component==$component1) || ($vendor_ID==$stock_ID && $component!=$component1))
{
$query6 = "INSERT INTO sample.stock (stock_ID, component, Qty) VALUES ($vendor_ID, '$component', $Qty)";//inserting new entry
if ($dbo->query($query6))
{echo "Data inserted !";}
else {echo "Production not updated!";}
}
else { $query4 = "UPDATE sample.stock SET Qty=(Qty+$Q) WHERE stock_ID=$vendor_ID AND component='$component'";//updating single existing entries
if ($dbo->query($query4))
{echo "Production updated !";}
else {echo "Production not updated!";}}
}
}
}
}
首先我选择一个临时表,我根据 3 次检查将数据传输到库存表中 -
更新 stock 表中的现有值(如果它们与临时表中的 stock_ID 和组件相同)
在 stock 表中插入新条目,如果它没有对应于该 stock_ID 的组件
如果库存表中有组件但不对应库存表中的任何 stock_ID,则在库存表中插入新条目
注意- 临时表中的 vendor_ID 与 stock 表中的 stock_ID 相同。
【问题讨论】:
-
那么,真正的问题是什么?
-
@Epodax 插入查询无限插入值...我不明白如何使用嵌套的 foreach 对两个表中的每个组件进行条件检查...
-
关于这个问题的任何更新?
-
@iamgory 我自己解决了,但你的代码也是正确的!谢谢!
标签: php mysql if-statement foreach