MINI
C:
/
xampp
/
htdocs
/
reset
/
Upload File:
files >> C:/xampp/htdocs/reset/index - Copy (2).php
<?php // reset_all_cards.php // Configurasi database $host = 'localhost'; $dbname = 'bobby_koperasi'; $username = 'root'; $password = ''; // Koneksi ke database menggunakan PDO try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Query untuk mendapatkan data cards $cards_query = "SELECT nomor_card, is_aktif, is_keluar FROM data_card ORDER BY nomor_card"; $cards_stmt = $pdo->query($cards_query); $cards = $cards_stmt->fetchAll(PDO::FETCH_ASSOC); if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['reset_all_cards'])) { // Mulai transaksi $pdo->beginTransaction(); try { // 1. Reset semua card aktif $reset_stmt = $pdo->prepare("UPDATE data_card SET is_aktif = 0, is_keluar = 0 WHERE is_aktif = 1"); $reset_stmt->execute(); $affected_rows = $reset_stmt->rowCount(); // Commit transaksi $pdo->commit(); // Refresh data setelah update $cards_stmt = $pdo->query($cards_query); $cards = $cards_stmt->fetchAll(PDO::FETCH_ASSOC); $success_message = "Berhasil mereset $affected_rows kartu aktif!"; } catch (Exception $e) { // Rollback jika terjadi error $pdo->rollBack(); $error_message = "Gagal mereset: " . $e->getMessage(); } } } catch (PDOException $e) { $error_message = "Koneksi database gagal: " . $e->getMessage(); } ?> <!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Reset Semua Kartu Aktif</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.datatables.net/1.13.6/css/dataTables.bootstrap5.min.css"> <style> .reset-container { max-width: 1000px; margin: 30px auto; padding: 30px; border-radius: 10px; box-shadow: 0 0 20px rgba(0,0,0,0.1); } .btn-reset { background-color: #dc3545; border-color: #dc3545; padding: 10px 25px; font-size: 1.1rem; transition: all 0.3s; } .btn-reset:hover { background-color: #c82333; transform: scale(1.02); } .active-true { background-color: #d4edda !important; } .active-false { background-color: #f8d7da !important; } .status-badge { display: inline-block; padding: 3px 8px; border-radius: 10px; font-weight: 500; min-width: 70px; text-align: center; } .status-active { background-color: #28a745; color: white; } .status-inactive { background-color: #dc3545; color: white; } .status-out { background-color: #6c757d; color: white; } .table-responsive { margin-bottom: 30px; } </style> </head> <body> <div class="container reset-container"> <h2 class="text-center mb-4">Manajemen Status Kartu</h2> <?php if (isset($success_message)): ?> <div class="alert alert-success text-center"> <i class="fas fa-check-circle me-2"></i> <?php echo $success_message; ?> </div> <?php elseif (isset($error_message)): ?> <div class="alert alert-danger text-center"> <i class="fas fa-exclamation-circle me-2"></i> <?php echo $error_message; ?> </div> <?php endif; ?> <div class="table-responsive"> <table id="cardsTable" class="table table-striped table-hover"> <thead class="table-dark"> <tr> <th>No. Kartu</th> <th>Status Aktif</th> <th>Status Keluar</th> </tr> </thead> <tbody> <?php foreach ($cards as $card): ?> <tr class="<?php echo $card['is_aktif'] ? 'active-true' : 'active-false'; ?>"> <td><?php echo htmlspecialchars($card['nomor_card']); ?></td> <td> <span class="status-badge <?php echo $card['is_aktif'] ? 'status-active' : 'status-inactive'; ?>"> <?php echo $card['is_aktif'] ? 'AKTIF' : 'NON-AKTIF'; ?> </span> </td> <td> <span class="status-badge <?php echo $card['is_keluar'] ? 'status-out' : 'status-inactive'; ?>"> <?php echo $card['is_keluar'] ? 'KELUAR' : 'MASUK'; ?> </span> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> <div class="card border-danger mb-4"> <div class="card-body text-center"> <h5 class="card-title text-danger"><i class="fas fa-exclamation-triangle me-2"></i>RESET SEMUA KARTU AKTIF</h5> <p class="card-text"> Aksi ini akan mengubah status <strong class="text-danger">SEMUA</strong> kartu yang saat ini aktif menjadi tidak aktif. <strong class="d-block mt-2">Perubahan ini tidak dapat dibatalkan.</strong> </p> </div> </div> <div class="text-center"> <form method="post" onsubmit="return confirmReset()" class="d-inline-block"> <button type="submit" name="reset_all_cards" class="btn btn-reset text-white"> <i class="fas fa-power-off me-2"></i> RESET SEMUA KARTU AKTIF </button> </form> </div> </div> <!-- JavaScript Libraries --> <script src="https://code.jquery.com/jquery-3.7.0.js"></script> <script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script> <script src="https://cdn.datatables.net/1.13.6/js/dataTables.bootstrap5.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script> <script> $(document).ready(function() { $('#cardsTable').DataTable({ language: { url: 'https://cdn.datatables.net/plug-ins/1.13.6/i18n/id.json' }, pageLength: 10, order: [[0, 'asc']] }); }); function confirmReset() { return confirm("APAKAH ANDA YAKIN INGIN MENONAKTIFKAN SEMUA KARTU?\n\nTindakan ini akan mengubah status SEMUA kartu aktif menjadi non-aktif secara permanen."); } </script> </body> </html>
Copyright ©2021 || Defacer Indonesia