统计显示的数据

时间:2015-08-10 23:20:36

标签: php filter count

我有一个页面,根据日期,年份,部分和IN / OUT显示学生的日志。我的问题是,如何计算通过过滤显示的学生人数。

截图:http://oi60.tinypic.com/2a5ejgg.jpg

这是代码。

//SET UP SQL STATEMENT
$WHERE='';
if ($year<>'0')
{
    $WHERE = " student.year =  $year ";
}

if ($section<>'0')
{
    if ($WHERE=='')
    {
        $WHERE = " student.section =  '" . $section . "'";
    }
    else
    {
        $WHERE = $WHERE . "and student.section =  '" . $section . "'";
    }
}
//SET UP SQL STATEMENT
if ($in_out<>'0')
{
    if ($WHERE=='')
    {
        $WHERE = " `log`.status_log =  '" . $in_out . "'";
    }
    else
    {
        $WHERE = $WHERE . "and `log`.status_log =  '" . $in_out . "'";
    }
}
//SET UP SQL STATEMENT
if ($datefilter<>'')
{
    if ($WHERE=='')
    {
        $WHERE = " `log`.date_log =  '" . $datefilter . "'";
    }
    else
    {
        $WHERE = $WHERE . "and `log`.date_log =  '" . $datefilter . "'";
    }
}
$start = ($page-1)*$per_page;

if ($WHERE=='')
{
    //SET UP SQL STATEMENT
    $sql = "SELECT `log`.id, (student.id) as ids, student.name, 
                   student.`year`, student.section, `log`.date_log, 
                   `log`.time_log, `log`.ampm, `log`.status_log,
                   section.sec_name 
            FROM `log` 
               Inner Join student ON student.cardcode = `log`.stud_id 
               Inner Join section ON section.id = student.section 
            order by `log`.id DESC 
            limit $start,$per_page";
}
else
{//SET UP SQL STATEMENT SELECT COUNT(*) AS totalin FROM log WHERE status_log='in'
    $sql = "SELECT `log`.id, (student.id) as ids, student.name,
                   student.`year`, student.section, `log`.date_log, 
                   `log`.time_log, `log`.ampm, `log`.status_log, 
                   section.sec_name 
            FROM `log` 
               Inner Join student ON student.cardcode = `log`.stud_id 
               Inner Join section ON section.id = student.section 
            WHERE $WHERE 
            order by `log`.id DESC
            limit $start,$per_page";

}
//EXECUTE SQL STATEMENT
$result = mysql_query($sql);


//OOP ALL QUERY DATA ON LOAD AS LIST
while($row = mysql_fetch_array($result))
{
    echo '<tr style="font-size: 12px;" class="record">';
    echo '<td ><a style="text-decoration:none; color:#4F6B72" href="studentlog.php?id='.$row['ids'].'"</a>' .$row['name']. '</td>';
    if ($row['year']=='1')
    { echo '<td>&nbsp;1st</td>';}
    else if ($row['year']=='2')
    { echo '<td>&nbsp;2nd</td>';}
    else if ($row['year']=='3')
    { echo '<td>&nbsp;3rd</td>';}
    else if ($row['year']=='4')
    { echo '<td>&nbsp;4th</td>';}
    echo '<td >'. $row['sec_name'].  '</td>';
    echo '<td >'. $row['status_log'] .'</td>';
    echo '<td>'.$row['date_log'].'</td>';
    echo '<td>'.$row['time_log'] . ' ' . $row['ampm']   .'</td>';
}

1 个答案:

答案 0 :(得分:0)

执行查询后,您可以mysql_num_rows()告诉您查询返回的实际行数

所以

//EXECUTE SQL STATEMENT 
$result = mysql_query($sql);        

$rows_returned = mysql_num_rows($result);
  

很明显你只是学习PHP和MYSQL,我建议你不要使用mysql_扩展名!

     

而是学习mysqli_PDO see this document for why