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
]);