我的foreach查询不起作用,我得到了一个错误



我收到一个警告:为foreach((消息提供的参数无效,代码如下。

我的想法是,我有两个表,一个是库存表,它每天都有大量数据导入,并且是链接的。另一个表(虽然不是父表(是站点列表,它们有一个名为StockName的公共字段。

这个代码的想法是,当运行时,它应该循环浏览站点表中的所有站点,获取StockName字段,然后使用它在stockdetails表中查找最新值,然后用最新信息更新site表。这就是理论,这是代码:

$rstmp = CustomQuery("SELECT * FROM Sites");
$datatmp = db_fetch_array($rstmp);
$SitePk = $datatmp['SitePk'];
foreach ($SitePk as $item)
{
echo $item."<BR>";
$rstmp2 = CustomQuery("SELECT * FROM ImportStockDetails where StockName='".$datatmp['StockName']."' ORDER BY `Date` DESC LIMIT 1");
$datatmp2 = db_fetch_array($rstmp2);
$latestdate = $rstmp2["LastStockDate"];
$latestcylpropane = $rstmp2["PropaneCylinders"];
$latestcylbutane = $rstmp2["ButaneCylinders"];
$latestbulkpropane = $rstmp2["BulkPropane"];
$latestbulkbutane = $rstmp2["BulkButane"];
$latesttotal = $latestcylpropane+$latestcylbutane+$latestbulkpropane+$latestbulkbutane;
$latestratio = $latesttotal/$datatmp['SiteMaxCapacity'];
global $dal;
$dal_table = $dal->Table("Sites"); 
$dal_table->Param["SitePk"] = $item; 
$dal_table->Value["LatestPropaneCylinderStock"] = $latestcylpropane;
$dal_table->Value["LatestButaneCylinderStock"] = $latestcylbutane;
$dal_table->Value["LatestBulkPropaneStock"] = $latestbulkpropane;
$dal_table->Value["LatestBulkButaneStock"] = $latestbulkbutane;
$dal_table->Value["LatestTotalStock"] = $latesttotal;
$dal_table->Value["`Stock/LimitRatio`"] = $latestratio;
$dal_table->Value["LastStockDate"] = $latestdate;
$dal_table->Update();
}

您收到警告是因为$SitePk不是数组,它只是一个值。您应该尝试使用$datatmp作为存储在$datatmp中的db_fetch_array($rstmp);返回数组。

相关内容

最新更新