query("SELECT COUNT(id) FROM v_pelanggan WHERE $SqlSvData status = 'aktif'"); $recordsTotal = $totalStmt->fetchColumn(); // Query data $sql = "SELECT id,akun,user_hotspot,nama,alamat,latitude,longitude,nomor_whatsapp,email,nik, nama_server,nama_paket,time_start,status_koneksi,nama_mikrotik,id_setting_mikrotik, time_update,ip_address FROM v_pelanggan $where ORDER BY $orderCol $orderDir LIMIT :limit OFFSET :offset"; $stmt = $pdo->prepare($sql); if(!empty($search)) $stmt->bindValue(':search', "%$search%"); $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); // Format data $no = $offset + 1; $dataArray = []; foreach($data as $row) { $latlong = (substr($row['latitude'],0,1) != '-') ? "{$row['latitude']}" : "{$row['latitude']}, {$row['longitude']}"; $wa = "{$row['nomor_whatsapp']}
{$row['email']}"; $status = $row['status_koneksi']; if($status == 'On') { $status .= " Remote
{$row['ip_address']}"; } $status .= "
{$row['time_update']}"; $aksi = "Detail"; // Build row sesuai urutan thead $rowData = [ $no++, $row['nama'], $row['nik'], $row['akun'] ]; if($hotspotAktif) { $rowData[] = $row['user_hotspot']; } $rowData[] = $row['alamat']; $rowData[] = $latlong; $rowData[] = $wa; $rowData[] = $row['nama_server']; $rowData[] = $row['nama_mikrotik']; $rowData[] = $row['nama_paket']; $rowData[] = $status; $rowData[] = $row['time_start']; $rowData[] = $aksi; $dataArray[] = $rowData; } echo json_encode([ "draw" => intval($_POST['draw']), "recordsTotal" => $recordsTotal, "recordsFiltered" => $recordsTotal, "data" => $dataArray ]);