php—使用mysql db表中的数据创建报表,用户可以在前端对其进行筛选

tzcvj98z  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(228)

我在处理一个显示存储在mysql db表中的用户活动的报告时遇到了一些问题。存储的用户活动数据是时间戳、用户id和活动类型。在前端,表在每一行中显示用户,并合计每一列中的活动类型,这是我当前正在处理的。
我想在前端添加一个选项,允许用户筛选从中提取数据的日期(基于时间戳),例如“筛选过去7天、过去30天、过去60天等”,但我不确定最初如何显示此信息,然后可以选择按日期筛选。
我构建的所有东西目前都在wordpress上(所以我经常使用php,不确定这是最好的方法还是应该使用js)。
任何建议或轻推在正确的方向是感激的!
下面是代码的一般示例

<table class="activityreport">
    <thead>
        <tr class="table100-head">
            <th class="column1">User</th>
            <th class="column1">Activity 1</th>
            <th class="column1">Activity 2</th>
            <th class="column1">Activity 3</th>
            <th class="column1">Activity 4</th>
            <th class="column1">Total Activities</th>
        </tr>
    </thead>
    <tbody>

<?php 
    global $wpdb;   
    $table_name = $wpdb->prefix . "_activities";
    $activity_log = $wpdb->get_results( "SELECT * FROM " . $table_name );
    $users = get_users();
    foreach($users as $user){
        $total_activities = 0;
        $total_activity1 = 0;
        $total_activity2 = 0;
        $total_activity3 = 0;
        $total_activity4 = 0;

        foreach($activity_log as $activity){
            if($activity->user_id == $user->ID){
                if($activity->activity_type == 'activity1'){
                    $total_activity1 += 1;
                }elseif($activity->activity_type == 'activity2'){
                    $total_activity2 += 1;
                }elseif($activity->activity_type == 'activity3'){
                    $total_activity3 += 1;
                }elseif($activity->activity_type == 'activity4'){
                    $total_activity4 += 1;
                }
            }else{}
            $total_activities = $total_activity1 + $total_activity2 +$total_activity3 + $total_activity4;

?>

<tr>
    <td><?php echo $user->first_name; ?></td>
    <td><?php echo $total_activity1; ?></td>
    <td><?php echo $total_activity2; ?></td>
    <td><?php echo $total_activity3; ?></td>
    <td><?php echo $total_activity4; ?></td>
    <td><?php echo $total_activities; ?></td>
</tr>

<?php
        }
    }
?>
    </tbody>
</table>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题