使用MySQL db表中的数据创建一个报告,该报告可由前端用户过滤

时间:2018-05-02 20:13:02

标签: php mysql wordpress frontend reporting

我在项目中遇到了一些问题,我正在研究一个显示我存储在mysql数据库表中的用户活动的报告。存储的用户活动数据是时间戳,用户ID和活动类型。在前端,表格显示用户的每一行,并总计我目前工作的每列中的活动类型。

我想在前端添加一个选项,允许用户过滤数据被拉出的日期(基于时间戳),例如"过滤最后7天,最后30天天,过去60天等等#34;但我不确定我最初会如何显示此信息,然后可以选择按日期过滤。

我构建的所有东西目前都在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>

0 个答案:

没有答案