如何仅使用 PHP 对编码的查询结果值求和


How to sum query result values on codition with only PHP?

所以,这是交易。我到处寻找答案,但没有找到适合我的情况的混凝土,也许我在谷歌上搜索了什么错误。顺便说一句,我希望phpmyadmin不是英文的,但它会自动变回cro...所以。。。:/希望你能理解得足够多,以帮助我解决问题......

链接到我的表格

提示:我知道如何通过mysql获得解决方案,因此您不必编写这些答案。

这是交易。这个表是通过连接其他 2 个表创建的,因为这是从一个查询中获取所有必需数据(我必须显示)的唯一方法(这是相关的,因为稍后我将不得不实现排序,否则将无法工作)。

我设法提取了不会与函数重复的数据,所以这就是我的解决方案现在的样子:

1特玛1操作1萨斯塔纳克.jpeg2012-11-26 16:29:582012-11-26 17:30:00

阿拉伯数字特玛2OPIS2萨斯塔纳克.jpeg2012-11-27 16:29:582012-11-29 18:30:00

3特玛3OPIs3萨斯塔纳克.jpeg2012-11-28 16:29:582012-11-28 17:05:00

四特玛4OPIS4萨斯塔纳克.jpeg2012-11-29 16:29:582013-11-29 21:42:00

等等...

没关系,但这不是我所需要的全部。我还有两步之遥。

  1. 我需要计算所有 id,其中当前 id 等于以前的 id。这意味着该解决方案将是: 5 (id_sastanka=1 appears 5 times in table) 5 (id_sastanka=2 appears 5 times), 6 (id_sastanka=3 appears 6 times), 6 (id_sastanka=4 appears 6 times)等等。

我尝试了各种组合,但都给出了正确的结果,所以请帮助。我知道解决方案很简单,但我似乎无法达到它。因此,这实际上表示受邀参加会议的用户数(按会议 ID)。

  1. 我需要计算状态= 1的所有id。我知道如何使用mysql完成所有这些操作,所以这不是问题,我需要php的答案...
    对此的解决方案应该是: 4 (four "1" in "status" where "id_sastanka"=1), 4 (four "1" in "status" where "id_sastanka"=2), 5 (five "1" in "status" where "id_sastanka"=3), 3 (three "1" in "status" where "id_sastanka"=4)....这表示参加这些会议的用户数。

我是初学者,我真的需要这方面的帮助,所以我希望你不要怀恨在心。

我猜,你的每一行数据都表示为数组。因此,我将为以下数据结构编写代码:

$rows = array(
    0 => array(
        'id_sastanka' => 1,
        'naziv' => 'tema1',
        'opis' => 'opis1',
        'slika' => 'sastanak.jpeg',
        'posetak' => '<...>',
        'zavrsetak' => '<...>',
        'dnevny_red' => '<...>',
        'id_korisnika' => '<...>',
        'status' => '1'
    ),
    1 => array(...),
    2 => array(...),
    ...
);
$prev_id = null;
$prev_id_counter = array();
$ids_status_counter = array();
foreach($rows as $row) {
    if ($prev_id == $row['id_sastanka']) {
        $prev_id_counter[$row['id_sastanka']] = (isset($prev_id_counter[$row['id_sastanka']])) ? ++$prev_id_counter[$row['id_sastanka']] : 1;
    }
    $prev_id = $row['id_sastanka'];
    if ($row['status'] == 1) {
         $ids_status_counter[$row['id_sastanka']] = (isset($ids_status_counter[$row['id_sastanka']])) ? ++$ids_status_counetr[$row['id_sastanka']] : 1;
    }
}

因此,在第一种情况下,在数组中$prev_id_counter结果,在第二种情况下存储$ids_status_counter结果。数组的格式为 ['id_sastanka'] =>大小写计数器