【问题标题】:PHP Mysql While loop for additionPHP Mysql While循环用于添加
【发布时间】:2012-07-19 10:13:09
【问题描述】:

我的数据库中有这个字段

email, addition 所以我想要的是WHERE email='$email' 它看起来是数据用户需要添加的。现在添加字段我们有100,100,1000

我如何用echo 1200 计算这个

我的代码是 注意这只是一个示例脚本代码,我无法在此处复制和粘贴我的代码,因为它很长。所以如果你发现拼写错误忽略它。

$sql = mysql_query( "SELECT * FROM user WHERE email = '$email' ") or die(mysql_error());
while ( $row = mysql_fetch_array($sql) ){
   echo $row[addition] ++;
}

是的,我知道它的格式不正确。我应该改变什么?我需要使用for还是foreach?为了添加这些计算?

谢谢

【问题讨论】:

  • 你应该首先规范你的数据库。在谷歌上查找。
  • 没有代码没有人帮助你,因为你做了什么不清楚他们想要帮助你
  • 好的,谢谢,下次补码
  • 有些人理解得很好,有些人却很慢。谢谢

标签: php mysql while-loop where


【解决方案1】:

使用正确的(标准化)数据结构,您可以:

SELECT SUM(addition) AS total FROM users WHERE email = '$email'

如果您像 Ignas 在他的评论中所说的那样将它作为 csv 存储在列中, 您可以修复数据库结构或使用 php:

$sum = array_sum(explode(',', $row['addition']));

【讨论】:

  • 谢谢,我正在寻找非常简单的答案,有这么多知识而不是浪费时间......谢谢先生。
  • array_sum() ...很好,完全忽略了这个函数:)
  • @CD001 在 SO 上回答问题的最大好处之一是您可以看到其他人如何解决相同的问题,并学习新的方法来完成您已经知道的事情
【解决方案2】:

像什么?

$sql = mysql_query( "SELECT * FROM user WHERE email = '$email' ") or die(mysql_error());

while ( $row = mysql_fetch_array($sql) ) {
  $iAdditionSum = 0;
  $aAddition = explode(',', $row['addition']);

  foreach($aAddition as (int) $iAddition) {
    $iAdditionSum += $iAddition;
  }

  echo $iAdditionSum;
}

【讨论】:

    猜你喜欢
    • 2011-11-30
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多