请在一行后循环中断时,是赋值运算符吗


please while loop breaking after one row, is it the assignment operator

请帮帮我,我的while循环似乎在第一个循环后中断,因为$totalprice只回显一次。原因可能是什么?

$pplresult = mysql_query("SELECT * FROM repplac WHERE Uname = '{$_SESSION['username']}'") or die(mysql_error());
while ($row = mysql_fetch_assoc($pplresult)) 
   //echo $row['Pquantity'] * $row['Price'];
  $totalprice = $row['Price'] * $row['Pquantity'];
  echo "$totalprice";
$pplresult = mysql_query("SELECT * FROM repplac WHERE Uname = '{$_SESSION['username']}'") or die(mysql_error());
while ($row = mysql_fetch_assoc($pplresult)) 
  {
 //echo $row['Pquantity'] * $row['Price'];
  $totalprice += $row['Price'] * $row['Pquantity'];
}
  echo "$totalprice";

试试这个:

$totalprice += $row['Price'] * $row['Pquantity'];

您的循环运行良好,只是忘记添加卷曲的bracer。

while ($row = mysql_fetch_assoc($pplresult)) {
  $totalprice = $row['Price'] * $row['Pquantity'];
  echo "$totalprice";
}

如果没有bracers,只接收循环头之后的第一行代码,您将只看到计算的最后结果得到响应。

结果可能只有一条记录。要进行检查,请按echo mysql_num_rows($pplresult);检查行数,并确认您的结果集中有多行