Update Banyak
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
include '../config/connect.php';
|
||||
|
||||
// Ambil parameter DataTables
|
||||
$draw = isset($_POST['draw']) ? intval($_POST['draw']) : 0;
|
||||
$start = isset($_POST['start']) ? intval($_POST['start']) : 0;
|
||||
$length = isset($_POST['length']) ? intval($_POST['length']) : 10;
|
||||
$search = isset($_POST['search']['value']) ? $_POST['search']['value'] : '';
|
||||
$orderColumnIndex = $_POST['order'][0]['column'] ?? 1;
|
||||
$orderDir = $_POST['order'][0]['dir'] ?? 'desc';
|
||||
|
||||
// Mapping kolom sesuai urutan table DataTable
|
||||
$columns = [
|
||||
0 => 'nama_server',
|
||||
1 => 'start_time',
|
||||
2 => 'nominal',
|
||||
3 => 'user_create',
|
||||
4 => 'status',
|
||||
5 => 'update_time',
|
||||
6 => 'id'
|
||||
];
|
||||
|
||||
$orderColumn = $columns[$orderColumnIndex] ?? 'start_time';
|
||||
|
||||
// Filter server ID
|
||||
$id_data_server = isset($_GET['i']) ? $_GET['i'] : 0; // bisa single atau multiple (1,2,3)
|
||||
$jenis = isset($_GET['s']) ? $_GET['s'] : 0;
|
||||
|
||||
// echo $jenis;
|
||||
$where = "WHERE 1=1 AND jenis = '$jenis'";
|
||||
if ($id_data_server > 0) {
|
||||
if ($id_data_server == 1) {
|
||||
$where .= ""; // semua server
|
||||
} else {
|
||||
// pastikan hanya angka dan koma
|
||||
$safe_ids = implode(',', array_map('intval', explode(',', $id_data_server)));
|
||||
$where .= " AND id_data_server IN ($safe_ids) ";
|
||||
}
|
||||
}
|
||||
|
||||
// Query untuk hitung total
|
||||
try {
|
||||
$stmt = $pdo->query("SELECT COUNT(*) FROM v_transaksi_withdraw $where");
|
||||
$recordsTotal = (int) $stmt->fetchColumn();
|
||||
} catch (Exception $e) {
|
||||
$recordsTotal = 0;
|
||||
}
|
||||
|
||||
// Query untuk filter pencarian
|
||||
$searchQuery = '';
|
||||
if (!empty($search)) {
|
||||
$searchQuery = " AND (user_create LIKE :search OR status LIKE :search OR nominal LIKE :search) ";
|
||||
}
|
||||
|
||||
// Hitung total setelah filter
|
||||
try {
|
||||
$stmt = $pdo->prepare("SELECT COUNT(*) FROM v_transaksi_withdraw $where $searchQuery");
|
||||
if (!empty($search)) $stmt->bindValue(':search', "%$search%", PDO::PARAM_STR);
|
||||
$stmt->execute();
|
||||
$recordsFiltered = (int) $stmt->fetchColumn();
|
||||
} catch (Exception $e) {
|
||||
$recordsFiltered = 0;
|
||||
}
|
||||
|
||||
// Ambil data sesuai filter + order + limit
|
||||
$data = [];
|
||||
try {
|
||||
$sql = "SELECT nama_server, start_time, nominal, user_create, status, update_time, id_data_server, id, bukti_success
|
||||
FROM v_transaksi_withdraw
|
||||
$where $searchQuery
|
||||
ORDER BY $orderColumn $orderDir
|
||||
LIMIT :start, :length";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
if (!empty($search)) $stmt->bindValue(':search', "%$search%", PDO::PARAM_STR);
|
||||
$stmt->bindValue(':start', $start, PDO::PARAM_INT);
|
||||
$stmt->bindValue(':length', $length, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC) ?: [];
|
||||
|
||||
// foreach ($rows as $row) {
|
||||
// // Format nominal ke number_format
|
||||
// $row['nominal'] = number_format((float)$row['nominal'], 0, ',', '.');
|
||||
// // $row['status'] = ($row['status'] == 'pending') ? '<span class="badge bg-primary p-2">' . strtoupper($row['status']) . '</span>' : '<span class="badge bg-success p-2">' . strtoupper($row['status']) . '</span>';
|
||||
// $row['id'] = ['id' => '']
|
||||
// $data[] = array_values($row); // ubah ke numerik index biar sesuai DataTables
|
||||
// }
|
||||
foreach ($rows as $row) {
|
||||
$data[] = [
|
||||
$row['nama_server'],
|
||||
$row['start_time'],
|
||||
number_format((float)$row['nominal'], 0, ',', '.'),
|
||||
$row['user_create'],
|
||||
$row['status'],
|
||||
$row['update_time'],
|
||||
[ // kolom 6 → objek
|
||||
"id" => $row['id'],
|
||||
"bukti_success" => $row['bukti_success']
|
||||
]
|
||||
];
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$data = [];
|
||||
}
|
||||
|
||||
// Response ke DataTables
|
||||
echo json_encode([
|
||||
"draw" => $draw,
|
||||
"recordsTotal" => $recordsTotal,
|
||||
"recordsFiltered" => $recordsFiltered,
|
||||
"data" => $data
|
||||
]);
|
||||
Reference in New Issue
Block a user