php - 我如何计算数组中的哪个值在数据库中具有更大的总和

标签 php mysql

我有一个数组,每个数组在数据库中都有不同的总和(也许其中一些是空的或者没有记录)

我需要知道哪一个的总和比所有其他的(在我的阵列上) 并将那个放在 $bigger 变量中,($bigger = $value)

我的尝试:

$new = 0;
$myarray = array('2', '5', '17', '55');

foreach($myarray as $value) {
    $before = intval($new);

    $query = mysql_query("SELECT SUM(total) AS totals FROM table WHERE id='$value'");
    $result = mysql_fetch_assoc($query);
    $new = intval($result['totals']);

    if ($new > $before){
        $biggest=intval($value);
    }
}

但它只显示新的是否比旧的有更大的值(value),而不是比所有的都大

感谢任何帮助

最佳答案

我会完全消除循环并这样做:

$myarray = array('2', '5', '17', '55');
$query = "SELECT SUM(total) AS totals FROM table WHERE id IN (" . implode(', ', $myarray) . ") GROUP BY id ORDER BY totals DESC LIMIT 1";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);

请注意,如果您希望按排序顺序接收所有 ID 的数据,您只需删除 LIMIT 子句,并添加一个循环来读出结果集的每一行。

我还建议不要使用 mysql_* 函数,因为它们已被弃用。如果你刚开始学习 PHP,你应该学习使用 mysqli_* 函数、PDO 或将来会支持的东西。

您还应该学习如何测试数据库查询的失败情况。我的示例很简单,但生产代码应测试查询和提取操作的成功/失败。

关于php - 我如何计算数组中的哪个值在数据库中具有更大的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14245109/

相关文章:

php - sIFR 还是 FLIR?

php - Laravel 存储文件编码

php - 在用户数量之间平均分配金额

java - 如何计算商会号码之间的相似度?

MYSQL: 子句 where 比较整数值

mysql - 从具有相同值但按差异分组的表中选择

php - 从变量打印 mysql 查询的结果

php - 更改 Javascript 文件的相对 URL

php - MYSQLI 错误 - 搜索语法帮助 - JOIN

android - 如何显示mysql数据库中的图片?