prepare("SELECT id, pppa, id_data_server, nama FROM setting_mikrotik WHERE pppa != ''"); $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($rows) { foreach ($rows as $row) { $id = $row['id']; $pppa = substr($row['pppa'],0,-1); $entries = explode('|', $pppa); // Buat array hasil dari $pppa $result = []; foreach ($entries as $entry) { // Pecah setiap entry berdasarkan '_' list($akun, $ip_address) = explode('_', $entry); $result[] = [ 'akun' => $akun, 'ip_address' => $ip_address ]; } // Ambil data akun dari database $dataakun = []; $stmtPel = $pdo->prepare("SELECT id, akun FROM pelanggan WHERE id_setting_mikrotik = :id"); $stmtPel->bindValue(':id', $id, PDO::PARAM_INT); // Pastikan parameter tipe aman $stmtPel->execute(); $pelanggan = $stmtPel->fetchAll(PDO::FETCH_ASSOC); // Iterasi data pelanggan foreach ($pelanggan as $key) { if (isset($key['akun'], $key['id'])) { // Pastikan kedua kunci ada $dataakun[] = [ "akun" => $key['akun'], "id" => $key['id'] ]; } } // Ambil hanya daftar akun dari $dataakun $akunDataakun = array_column($dataakun, 'akun'); // Cari akun yang ada di $result tetapi tidak ada di $dataakun $akunTidakAdaDiDataakun = array_filter($result, function ($item) use ($akunDataakun) { return !in_array($item['akun'], $akunDataakun); }); // Hasil akhir $hasil = [ 'akun_unmanage' => $akunTidakAdaDiDataakun ]; $ppp_unmanage = json_encode($hasil); $updateStmt = $pdo->prepare("UPDATE setting_mikrotik SET ppp_unmanage = :ppp_unmanage WHERE id = :id"); $updateStmt->execute([':ppp_unmanage' => $ppp_unmanage, ':id' => $id]); // Output hasil // echo "
";
        // print_r($hasil);
        
        
        
        // $dataakun = [];
        // // Ambil semua akun pelanggan dalam satu query
        // $stmtPel = $pdo->prepare("SELECT id, akun FROM pelanggan WHERE id_setting_mikrotik = :id");
        // $stmtPel->bindValue(':id', $id);
        // $stmtPel->execute();
        // $pelanggan = $stmtPel->fetchAll(PDO::FETCH_ASSOC);
        
        // foreach ($pelanggan as $key) {
        //     $dataakun[] = array("akun" => $key['akun'], "id" => $key['id']);
        // }

        // $time = date('Y-m-d H:i:s');
        // $updates = [];
        // $updateStatusOff = [];

        // foreach ($pelanggan as $key) {
        //     $akun = $key['akun'];
        //     $idakun = $key['id'];

        //     // Cek apakah akun ada dalam pppa
        //     if (strpos($pppa, $akun) !== false) {
        //         // Cari nama awalan dan ambil bagian data setelahnya
        //         $cari00 = stristr($pppa, $akun);
        //         // Ambil data hingga tanda '|'
        //         $cari02 = strtok($cari00, "|");
        //         // Rubah ke array
        //         $data = explode("_", $cari02);

        //         if (count($data) === 2) {
        //             $ipadd = $data[1];

        //             // Siapkan data untuk update
        //             $updates[] = [
        //                 'id' => $idakun,
        //                 'status' => 'On',
        //                 'ip_address' => $ipadd,
        //                 'time' => $time,
        //             ];
        //         }
        //     } else {
        //         $updateStatusOff[] = $idakun;
        //     }
        // }
        // echo $row['nama'] . " =>
\n"; // // Update status koneksi yang 'On' sekaligus // if (!empty($updates)) { // $updateQuery = "UPDATE pelanggan SET status_koneksi = CASE id "; // foreach ($updates as $update) { // $updateQuery .= "WHEN {$update['id']} THEN 'On' "; // } // $updateQuery .= "END, ip_address = CASE id "; // foreach ($updates as $update) { // $updateQuery .= "WHEN {$update['id']} THEN '{$update['ip_address']}' "; // } // $updateQuery .= "END, time_update = '{$time}' WHERE id IN (" . implode(',', array_column($updates, 'id')) . ")"; // $pdo->exec($updateQuery); // } // // Update status koneksi yang 'Off' // if (!empty($updateStatusOff)) { // $updateOffQuery = "UPDATE pelanggan SET status_koneksi = 'Off' WHERE id IN ('" . implode("', '", $updateStatusOff) . "')"; // $pdo->exec($updateOffQuery); // } } } else { echo "No data found.\n"; } ?>