prepare("SELECT fizyka_progress, chemia_progress FROM users WHERE id = ?"); $stmt->bind_param("i", $user_id); $stmt->execute(); $res = $stmt->get_result()->fetch_assoc(); // Łączymy oba ciągi progressu w jedną tablicę ID $all_done_str = $res['fizyka_progress'] . ',' . $res['chemia_progress']; $all_done_arr = explode(',', trim($all_done_str, ',')); // 2. Funkcja pomocnicza do wyciągania danych z plików lekcji function getLessonMeta($filePath) { if (!file_exists($filePath)) return null; $content = file_get_contents($filePath); // Wyciągamy Tytuł z tagu [TYTUL_LEKCJI] preg_match('/\[TYTUL_LEKCJI\]:\s*(.*)/', $content, $titleMatch); // Wyciągamy Opis z komentarza na górze pliku (Desc: ...) preg_match('/Desc:\s*(.*?)\s*\.\s*\*/', $content, $descMatch); // Obliczamy ID lekcji tak jak w Twoim systemie (np. f01-01 -> 101) $lesson_id = 0; $filename = basename($filePath); if (preg_match("/([a-z])(\d+)-(\d+)/i", $filename, $matches)) { $lesson_id = (int)$matches[2] * 100 + (int)$matches[3]; } return [ 'id' => (string)$lesson_id, 'title' => isset($titleMatch[1]) ? trim($titleMatch[1]) : "Lekcja " . $filename, 'desc' => isset($descMatch[1]) ? trim($descMatch[1]) : "Brak opisu lekcji.", 'file' => $filename ]; } // 3. Pobieramy listę plików lekcji (f dla fizyki, c dla chemii) $files = glob("lekcje/f*.php"); // Założyłem, że lekcje są w folderze /lekcje lub głównym ?>