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