统计所有foreach PHP

时间:2016-10-18 09:50:18

标签: php

我有一个问题:

我有以下代码:

foreach($_COOKIE as $key => $value)  {
    $sql = "SELECT * FROM producten WHERE id='$key'";
    $result = mysqli_query($conn, $sql);
    while($row = $result->fetch_assoc()) {
        $prijs = $row['prijs'];
        echo $prijs;
    }
 }

我想要做的是计算所有$prijs变量(int)。 我尝试使用count($prijs)但没有用。

5 个答案:

答案 0 :(得分:1)

要获得时间循环次数的计数,您可以使用计数器变量并获得总结,您可以使用+=对循环中的值求和。

如果您只想总结数值,也可以使用is_numeric()

$i=0;
$sum=0;
while($row = $result->fetch_assoc()) {
   $prijs = $row['prijs'];
   $sum += $prijs;
   $i++;
}
echo $i; //will give you count
echo $sum; //will give you sum

答案 1 :(得分:0)

我认为你的措辞混淆了,你的意思是总结$prijs的值,在这种情况下,使用一个新的变量并加上它:

$sum = 0;
foreach($_COOKIE as $key => $value)  {
$sql = "SELECT * FROM producten WHERE id='$key'";
$result = mysqli_query($conn, $sql);
while($row = $result->fetch_assoc()) {
$prijs = $row['prijs'];
echo $prijs;
$sum += $prijs;
}}

答案 2 :(得分:0)

尝试

$i=0;                
foreach($_COOKIE as $key => $value)  {
    $sql = "SELECT * FROM producten WHERE id='$key'";
    $result = mysqli_query($conn, $sql);
    while($row = $result->fetch_assoc()) {
         $prijs = $row['prijs'];  
         echo $prijs;
         $i++;
         echo $i;
   }
}

答案 3 :(得分:0)

根据您的代码,$prijs只返回单个值,因此当您尝试count时,它只会提供1。但是如果你想设置所有的值并存储为数组,请尝试$prijs[] = $row['prijs']

答案 4 :(得分:0)

您可以按如下方式简化代码:

$values = array_map('mysqli_real_escape_string', array_keys($_COOKIE));
$sql = "SELECT * FROM producten WHERE id in ('".implode("','",$values."')";
$result = mysqli_query($conn, $sql);
while($row = $result->fetch_assoc()) {
    $prijs = $row['prijs'];
    echo $prijs;
}
echo "Total rows: ".$result->num_rows;