【问题标题】:mysql - count status for each user by selecting their namemysql - 通过选择每个用户的姓名来计算每个用户的状态
【发布时间】:2015-04-06 10:10:17
【问题描述】:

我有一个表格,其中包含学生姓名和当前日期和时间以及他们的状态,如下所示

约翰缺席 3 天

简请假两天

我有这个代码,但它不是针对特定用户计算所有缺席的,所以如果我在下拉菜单中选择它,我想只显示 John 缺席日和 jane 缺席日

<?php
$sql = "SELECT student_name, count(status) as numberOfabsent FROM attendance WHERE status = 'Absent' GROUP BY student_name";
        $result = $db->prepare($sql);
        $result->execute();
        while ($row = $result->fetch()) 
        echo $row['numberOfabsent'];
 ?>

【问题讨论】:

  • 也许在末尾添加一个有子句作为having student_name in ('John','jane') 或在 where 条件中。
  • 也许SELECT student_name, count(*) as numberOfabsent...

标签: php mysql select count


【解决方案1】:
    <?php
             $sql = "SELECT *, count(status) as numberOfabsent FROM attendance WHERE status = 'Absent' GROUP BY student_name";
             $result = $db->prepare($sql);
             $result->execute();
             while ($row = $result->fetch()) {
             $numberOfabsent = $row['numberOfabsent'];
             $absdate = $row['timestamp'];
             echo "<tr><td><a href='" . $configs->getConfig('WEB_ROOT') . "admin/adminuseredit.php?usertoedit=" . $row['student_name'] . "'>" . $row['student_name'] . "</a></td>"
             . "<td><div class='shorten'><a href='" . $row['numberOfabsent'] . "'>" . $numberOfabsent  . " days</a></div></td><td>" . $absdate . "</td>"
             . "<td class='text-center'><div class='btn-group btn-group-xs'><a href='".$configs->getConfig('WEB_ROOT')."admin/adminuseredit.php?usertoedit=".$row['student_name']."' title='Edit' class='open_modal btn btn-default'><i class='fa fa-pencil'></i> View</a>";
             echo"</tr>";
             }
     ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多