File: /home/bigisxfd/public_html/cowork/members.php
<?php
// Include necessary files
include_once("header.php");
include_once("sidebar.php");
// Fetch existing members
$existingMembers = getExistingMembers(); // Define this function to fetch members
// Handle search functionality
$searchTerm = $_GET['search'] ?? '';
if (!empty($searchTerm)) {
$filteredMembers = array_filter($existingMembers, function ($member) use ($searchTerm) {
return stripos($member['rfid'], $searchTerm) !== false
|| stripos($member['firstname'], $searchTerm) !== false
|| stripos($member['lastname'], $searchTerm) !== false
|| stripos($member['email'], $searchTerm) !== false
|| stripos($member['number'], $searchTerm) !== false;
});
} else {
$filteredMembers = $existingMembers;
}
// Sort by first name
usort($filteredMembers, function ($a, $b) {
return strcasecmp($a['firstname'], $b['firstname']);
});
// Pagination
$page = $_GET['page'] ?? 1; // Current page
$perPage = 20; // Records per page
$totalMembers = count($filteredMembers);
$totalPages = ceil($totalMembers / $perPage);
// Validate current page
if ($page < 1) {
$page = 1;
} elseif ($page > $totalPages) {
$page = $totalPages;
}
// Calculate offset
$offset = ($page - 1) * $perPage;
$paginatedMembers = array_slice($filteredMembers, $offset, $perPage, true);
?>
<style>
.alert {
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
border-radius: 4px;
}
.alert-success {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
.alert-danger {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
.alert-warning {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
</style>
<section>
<div class="column">
<?php
// Display messages based on the query parameter
if (isset($_GET['message'])) {
if ($_GET['message'] == 'success') {
echo "<div class='alert alert-success'>Member deleted successfully.</div>";
} elseif ($_GET['message'] == 'error') {
$error = isset($_GET['error']) ? htmlspecialchars($_GET['error']) : 'An error occurred.';
echo "<div class='alert alert-danger'>Error: $error</div>";
} elseif ($_GET['message'] == 'invalid_id') {
echo "<div class='alert alert-warning'>Invalid member ID.</div>";
} elseif ($_GET['message'] == 'missing_id') {
echo "<div class='alert alert-warning'>Member ID is missing.</div>";
}
}
?>
<div style="display: flex; align-items: center; justify-content: space-between;">
<h2>Existing Members</h2>
<button class="add-button" onclick="location.href='add_member.php'">Add Member</button>
</div>
<form action="" method="get" class="search-form">
<input type="text" name="search" placeholder="Search members..." value="<?= $searchTerm ?>">
<button type="submit">Search</button>
</form>
<table>
<tr>
<th>Member ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Number</th>
<th>Birthday</th>
<th>Available Credits</th>
<th>Action</th>
</tr>
<?php
foreach ($paginatedMembers as $member) {
echo "<tr>";
echo "<td>{$member['rfid']}</td>";
echo "<td>{$member['firstname']}</td>";
echo "<td>{$member['lastname']}</td>";
echo "<td>{$member['email']}</td>";
echo "<td>{$member['number']}</td>";
echo "<td>{$member['birthday']}</td>";
echo "<td>{$member['credits']}</td>";
echo "<td><a href='edit_member.php?id={$member['memberid']}' class='edit-button'>Edit</a> | <a href='delete_member.php?id={$member['memberid']}' class='delete-button'>Delete</a></td>";
echo "</tr>";
}
?>
</table>
<!-- Pagination links -->
<div class="pagination">
<?php for ($i = 1; $i <= $totalPages; $i++) : ?>
<a href="?page=<?= $i ?>&search=<?= $searchTerm ?>" <?= ($i == $page) ? 'class="active"' : '' ?>><?= $i ?></a>
<?php endfor; ?>
</div>
</div>
</section>
</body>
</html>