【问题标题】:Grab values from SQL array in PHP with while loop使用while循环从PHP中的SQL数组中获取值
【发布时间】:2013-12-30 02:57:23
【问题描述】:

所以我在 mySQL 中有一个表,其中包含包含 customerID、productPrice 和数量的销售记录。我需要从每一行获取成本,然后将其编译为总成本。我需要使用一个while循环(赋值指令)来做到这一点,到目前为止我还没有运气。这是我现在的位置,感谢任何帮助

while ($record = mysqli_fetch_array($recordSet, MYSQLI_ASSOC)) {
    $cost = $productPrice * $quantity
    $totalCost = $totalCost + $cost
};
echo "$totalCost";

【问题讨论】:

    标签: php sql arrays loops while-loop


    【解决方案1】:
    $totalCost = 0;
    while ($record = mysqli_fetch_array($recordSet, MYSQLI_ASSOC)) {
        $cost = $record["productPrice"] * $record["quantity"];
        $totalCost += $cost;
    }
    echo "$totalCost";
    

    【讨论】:

      【解决方案2】:

      这更像是一个评论,但写一个评论还不够酷,试着把你的 $totalcost 变量放在你的 while 循环之外,这样每次迭代都不会覆盖它的值。

      $totalcost=0;
      while ($record = mysqli_fetch_array($recordSet, MYSQLI_ASSOC)) {
      $cost = $record['productPrice'] * $record['quantity'];
      $totalCost = $totalCost + $cost;
      };
      

      【讨论】:

        【解决方案3】:
        $totalCost = 0;
        while ($record = mysqli_fetch_array($recordSet, MYSQLI_ASSOC)) {
            $cost = $record['productPrice'] * $record['quantity'];
            $totalCost += $cost
        }
        echo "$totalCost";
        

        您首先需要声明$totalCost,否则您将收到未定义的错误,结束时无需在大括号中添加分号,也无需在使用$record = mysqli_fetch_array($recordSet, MYSQLI_ASSOC) 提取信息时您需要以数组键的形式访问信息,因此价格为$record['price']

        【讨论】:

          【解决方案4】:

          改变

          $cost = $productPrice * $quantity
          

          进入

          $cost = $record["productPrice"] * $record["quantity"];
          

          【讨论】:

          • 为什么是-1?我真的很好奇。
          • 猜猜有人不喜欢我揍他一顿。
          • 我看到你的回答并没有完全解决问题的问题,但仍然是一个有效的观点。
          • 不,它确实完全解决了问题。实际上,不在循环外声明 $productPrice 会导致通知,但它起作用。价格会加起来,并且会显示回声。
          • 是的,你的权利它会加起来的。但错误消息的持久性不是 100% 的解决方案
          猜你喜欢
          • 2013-04-28
          • 2019-09-11
          • 1970-01-01
          • 1970-01-01
          • 2021-10-19
          • 2015-03-13
          • 1970-01-01
          • 1970-01-01
          • 2020-10-02
          相关资源
          最近更新 更多