'ORDER BY uploaded_at ASC', 'most_viewed' => 'ORDER BY views DESC', 'least_viewed' => 'ORDER BY views ASC', default => 'ORDER by uploaded_at DESC' }; // counting max pages $stmt = $db->query("SELECT COUNT(id) AS all_files FROM files WHERE id NOT IN (SELECT id FROM file_bans) $sort"); $stmt->execute(); $max_pages = ceil(($stmt->fetch(PDO::FETCH_ASSOC)['all_files'] ?: 0) / $limit); $page = min($page, $max_pages - 1); // getting files $offset = $page * $limit; $stmt = $db->query("SELECT f.id, f.mime, f.extension, f.title FROM files f WHERE f.id NOT IN (SELECT id FROM file_bans) $sort LIMIT $limit OFFSET $offset "); $stmt->execute(); $files = $stmt->fetchAll(); foreach ($files as &$f) { if (str_starts_with($f['mime'], 'video/')) { $f['color'] = 'blue'; } else if ($f['mime'] == 'application/x-shockwave-flash') { $f['color'] = 'red'; } $f['name'] = $f['title'] ?: sprintf('%s.%s', $f['id'], $f['extension']); $f['thumb_title'] = "{$f['name']} // {$f['mime']} ({$f['extension']})"; } unset($f); ?>