У меня возникли проблемы с проектом, над которым я работаю, в отношении отчета, показывающего активность пользователя, который я храню в таблице mysql db. Сохраняемыми данными об активности пользователя являются отметка времени, идентификатор пользователя и тип действия. Во внешнем интерфейсе таблицы отображаются в каждой строке пользователя и суммируют типы действий в каждом столбце, над которыми я в настоящее время работаю.
Я бы хотел добавить в интерфейсную опцию, позволяющую пользователю фильтровать даты, с которых извлекаются данные (на основе отметки времени), например, фильтр «последние 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>