Projects: Fix slow load by using an optimized query to count tickets and tasks

This commit is contained in:
johnnyq
2026-04-27 13:15:11 -04:00
parent e762ebb88b
commit b6e3176ed0

View File

@@ -190,34 +190,24 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
// Get Tasks and Tickets Stats // Get Tasks and Tickets Stats
// Get Tickets // Get Tickets
$sql_tickets = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_project_id = $project_id"); $row = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT(ticket_id') AS count FROM tickets WHERE ticket_project_id = $project_id"));
$ticket_count = mysqli_num_rows($sql_tickets); $ticket_count = $row['count'];
// Get Closed Ticket Count // Get Closed Ticket Count
$sql_closed_tickets = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_project_id = $project_id AND ticket_closed_at IS NOT NULL"); $row = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT(ticket_id') AS count FROM tickets WHERE ticket_project_id = $project_id AND ticket_closed_at IS NOT NULL"));
$closed_ticket_count = $row['count'];
$closed_ticket_count = mysqli_num_rows($sql_closed_tickets);
// Ticket Closed Percent // Ticket Closed Percent
if($ticket_count) { if($ticket_count) {
$tickets_closed_percent = round(($closed_ticket_count / $ticket_count) * 100); $tickets_closed_percent = round(($closed_ticket_count / $ticket_count) * 100);
} }
// Get All Tasks // Get All Tasks
$sql_tasks = mysqli_query($mysqli, $row = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT(task_id') AS count FROM tickets, tasks WHERE ticket_id = task_ticket_id AND ticket_project_id = $project_id"));
"SELECT * FROM tickets, tasks $task_count = $row['count'];
WHERE ticket_id = task_ticket_id
AND ticket_project_id = $project_id"
);
$task_count = mysqli_num_rows($sql_tasks);
// Get Completed Task Count // Get Completed Task Count
$sql_tasks_completed = mysqli_query($mysqli, $row = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT(task_id') AS count FROM tickets, tasks WHERE ticket_id = task_ticket_id AND ticket_project_id = $project_id AND task_completed_at IS NOT NULL"));
"SELECT * FROM tickets, tasks $completed_task_count = $row['count'];
WHERE ticket_id = task_ticket_id
AND ticket_project_id = $project_id
AND task_completed_at IS NOT NULL"
);
$completed_task_count = mysqli_num_rows($sql_tasks_completed);
// Tasks Completed Percent // Tasks Completed Percent
if($task_count) { if($task_count) {