douzhanbai9526
2018-02-07 13:32
浏览 487
已采纳

循环使用foreach并创建数组

I am trying to loop through and Array of unique zones in a property data base and then create an array for the size, value and building sizes for each of those zones.

My problem is that I can create the array, but since each foreach that is loop through has the array with the same name, so the arrays totaling not just the amount with in that zone, but the amount of previously looped through zones.

For example: Zone A should total 100 Zone B should total 200

But the Code is returning: Zone A totals 100 Zone B totals 300 (100+200)

The issue likely falls on how the arrays, $Value, $ResSQFT and $ComSQFT, end up having the same name in each foreach loop, but I know how to rename them on the fly.

$Zones = "SELECT DISTINCT(ZONING_COD) FROM `ClevelandParcels`" ;

$ZonesStatus = mysqli_query($Connection, $Zones) ;
if(!$ZonesStatus)
{
  die('Could not get data: ' . mysqli_error());
}
while($row = mysqli_fetch_array($ZonesStatus))
{

$UniqueZones[] = array($row['ZONING_COD']);

}

echo "Zone,ParcelCount,ParcelValue,BuilingSqft,ResLivableArea,ComLeaseableArea<br>";

foreach ( $UniqueZones as $varZ ) {
  $ZoneParcelCount = "SELECT COUNT(*) FROM `ClevelandParcels` WHERE ZONING_COD =     '".$varZ[0]."'" ;
  $ZoneParcelCountStatus = mysqli_query($Connection, $ZoneParcelCount) ;
  $total = mysqli_fetch_row($ZoneParcelCountStatus);

  echo $varZ[0].",".$total[0];
mysqli_free_result($ZoneParcelCountStatus);

  $ZoneParcels = "SELECT * FROM `ClevelandParcels` WHERE ZONING_COD =     '".$varZ[0]."'" ;
  $ZoneParcelsStatus = mysqli_query($Connection, $ZoneParcels) ;
  if(!$ZoneParcelsStatus)
{
  die('Could not get data: ' . mysqli_error());
}

while ($row = mysqli_fetch_assoc($ZoneParcelsStatus)){
  $Value[] = $row['GROSS_CE_2'];
  $ResSqft[] = $row['TOTAL_RES_'];
  $ComSqft[] = $row['TOTAL_COM_'];
  }
    echo ",        $".array_sum($Value).",".array_sum($ResSqft).",".array_sum($ComSqft)."<br>";
    mysqli_free_result($ZoneParcelsStatus);

}

图片转代码服务由CSDN问答提供 功能建议

我试图遍历属性数据库中的唯一区域数组,然后为该大小创建一个数组 每个区域的值,值和构建大小。</ p>

我的问题是我可以创建数组,但由于每个循环的foreach都有相同名称的数组,所以 数组总计不仅仅是该区域的数量,而是先前通过区域循环的数量。</ p>

例如: Zone A应该总计100 区域B应该总计200 </ p>

但是代码正在返回: 区域A总计100 区域B总计300(100 + 200)</ p>

问题可能落在阵列的数值上,$ Value ,$ ResSQFT和$ ComSQFT,最终在每个foreach循环中都有相同的名称,但我知道如何在运行中重命名它们。</ p>

  $ Zones =“SELECT DISTINCT(  ZONING_COD)FROM`ClevelandParcels`“; 
 
 $ ZonesStatus = mysqli_query($ Connection,$ Zones); 
if(!$ ZonesStatus)
 {
 die('无法获取数据:'。mysqli_error())  ; 
} 
而($ row = mysqli_fetch_array($ ZonesStatus))
 {
 
 $ UniqueZones [] = array($ row ['ZONING_COD']); 
 
} 
 
echo“Zone  ,ParcelCount,ParcelValue,BuilingSqft,ResLivableArea,ComLeaseableArea&lt; br&gt;“; 
 
foreach($ UniqueZones as $ varZ){
 $ ZoneParcelCount =”SELECT COUNT(*)FROM`ClevelandParcels` WHERE ZONING_COD ='“。$ varZ  [0]。“'”; 
 $ ZoneParcelCountStatus = mysqli_query($ Connection,$ ZoneParcelCount); 
 $ total = mysqli_fetch_row($ ZoneParcelCountStatus); 
 
 echo $ varZ [0]。“,”。$ total  [0]; 
mysqli_free_result($ ZoneParcelCountStatus); 
 
 $ ZoneParcels =“SELECT * FROM`ClevelandParcels` WHERE ZONING_COD ='”。$ varZ [0]。“'”; 
 $ ZoneParcelsStatus = mysqli_query($ Connection)  ,$ ZoneParcels); 
 if(!$ ZoneParcelsStatus)
 {
 die('无法获取数据:'。  mysqli_error()); 
} 
 
而($ row = mysqli_fetch_assoc($ ZoneParcelsStatus)){
 $ Value [] = $ row ['GROSS_CE_2']; 
 $ ResSqft [] = $ row ['TOTAL_RES_  ']; 
 $ $ ComSqft [] = $ row ['TOTAL_COM _']; 
} 
 echo“,$”。array_sum($ Value)。“,”。array_sum($ ResSqft)。“,”。array_sum  ($ ComSqft)。“&lt; br&gt;”; 
 mysqli_free_result($ ZoneParcelsStatus); 
 
} 
 </ code> </ pre> 
 </ div>

2条回答 默认 最新

相关推荐 更多相似问题