query($columns_query); $existing_columns = []; while($col = $columns_result->fetch_assoc()) { $existing_columns[] = $col['Field']; } // Delete student logic if (isset($_GET['delete_id'])) { $id = intval($_GET['delete_id']); // First get student photo to delete (if column exists) if (in_array('photo', $existing_columns)) { $result = $conn->query("SELECT photo FROM students WHERE id = $id"); if ($row = $result->fetch_assoc()) { if (!empty($row['photo']) && file_exists($row['photo'])) { unlink($row['photo']); } } } // Also delete related certificates (if table exists) $cert_table_check = $conn->query("SHOW TABLES LIKE 'certificates'"); if ($cert_table_check->num_rows > 0) { $cert_result = $conn->query("SELECT certificate_file FROM certificates WHERE student_id = $id"); while($cert_row = $cert_result->fetch_assoc()) { if (!empty($cert_row['certificate_file']) && file_exists($cert_row['certificate_file'])) { unlink($cert_row['certificate_file']); } } $conn->query("DELETE FROM certificates WHERE student_id = $id"); } $conn->query("DELETE FROM students WHERE id = $id"); header("Location: students-list.php?msg=deleted"); exit(); } // Search functionality $search = isset($_GET['search']) ? mysqli_real_escape_string($conn, $_GET['search']) : ''; $class_filter = isset($_GET['class']) ? mysqli_real_escape_string($conn, $_GET['class']) : ''; $session_filter = isset($_GET['session']) ? mysqli_real_escape_string($conn, $_GET['session']) : ''; // Build query with filters - only use existing columns $query = "SELECT * FROM students WHERE 1=1"; if (!empty($search)) { $search_conditions = []; $search_conditions[] = "student_name LIKE '%$search%'"; if (in_array('student_name_pb', $existing_columns)) { $search_conditions[] = "student_name_pb LIKE '%$search%'"; } $search_conditions[] = "roll_no LIKE '%$search%'"; if (in_array('reg_no', $existing_columns)) { $search_conditions[] = "reg_no LIKE '%$search%'"; } $search_conditions[] = "father_name LIKE '%$search%'"; if (in_array('mobile', $existing_columns)) { $search_conditions[] = "mobile LIKE '%$search%'"; } $query .= " AND (" . implode(' OR ', $search_conditions) . ")"; } if (!empty($class_filter)) { $query .= " AND class = '$class_filter'"; } if (!empty($session_filter) && in_array('session', $existing_columns)) { $query .= " AND session = '$session_filter'"; } $query .= " ORDER BY id DESC"; $result = $conn->query($query); if (!$result) { die("Query Error: " . $conn->error); } $has_students = ($result && $result->num_rows > 0); // Get distinct classes for filter $classes_query = "SELECT DISTINCT class FROM students ORDER BY class ASC"; $classes_result = $conn->query($classes_query); // Get distinct sessions for filter (only if column exists) $sessions_result = false; if (in_array('session', $existing_columns)) { $sessions_query = "SELECT DISTINCT session FROM students ORDER BY session DESC"; $sessions_result = $conn->query($sessions_query); } // Get total students count $total_query = "SELECT COUNT(*) as total FROM students"; $total_result = $conn->query($total_query); $total_students = ($total_result && $total_result->num_rows > 0) ? $total_result->fetch_assoc()['total'] : 0; // Get filtered count $filtered_count = $has_students ? $result->num_rows : 0; $page_title = 'Students List'; $page_subtitle = 'Punjab State Open School - Manage Students'; include 'includes/header.php'; include 'includes/sidebar.php'; ?>

Students List

🏛️ Punjab State Open School, Hoshiarpur - Manage Student Records

Total Students

Showing Results

Active Students

Add New Student
Success! Student deleted successfully.
Success! Student updated successfully.
Success! New student added successfully. Roll No: | Reg No:
num_rows > 0): ?> Reset

Student Records

Showing of students
fetch_assoc()): ?>
# Student Name Roll No Reg No Father's Name Class Session Mobile Gender Actions

Class Male Female

No Students Found

No students match your search criteria. Try different filters. No students registered yet. Click "Add New Student" to register your first student.

Add New Student
Displaying all student records matching ""