提问人:Denis 提问时间:10/18/2023 最后编辑:Denis 更新时间:10/19/2023 访问量:9
无法搜索数据库表列中不存在的列中的数据
Cannot search for data in columns that do not exist in the database table column
问:
在不在SQL中的列上搜索数据,而是在JSON数组中的列上搜索数据,有人可以教我如何正确地做到这一点吗
一切正常,但我找不到“keterangan”列中的内容。如果我在该列中搜索内容。我可以搜索其中的任何内容
(“尼克”, “电子邮件”, “nama_lengkap”)
.难道只是因为数据库表字段中不存在这一列吗?,该列怎么能包含在搜索中?
我的代码有什么问题?:
$sortableColumns = array("nik", "email", "nama_lengkap", "keterangan");
$sortColumn = "timestamp";
$sortDirection = "DESC";
if (isset($_POST['order']) && !empty($_POST['order'])) {
$order = $_POST['order'][0];
$sortColumnIndex = $order['column'];
$sortColumn = $sortableColumns[$sortColumnIndex];
$sortDirection = $order['dir'];
}
$searchValue = mysqli_real_escape_string($conn, $_POST['search']['value']);
$query = "SELECT * FROM data_mahasiswa LEFT JOIN data_kampus
ON data_mahasiswa.nik = data_kampus.nik WHERE
data_mahasiswa.nik = '$searchValue' OR
data_mahasiswa.nama_lengkap LIKE '%$searchValue%' OR
data_mahasiswa.email LIKE '%$searchValue%'";
$result = $conn->query($query);
$totalRecords = $result->num_rows;
$limit = $_POST['length'];
$offset = $_POST['start'];
$query .= " LIMIT $limit OFFSET $offset";
$result = $conn->query($query);
$data = array();
while ($row = $result->fetch_assoc()) {
$rowData = array(
'nik' => ''.$row["nik"].'',
'email' => ''.$row["email"].'',
'nama_lengkap' => ''.$row["nama_lengkap"].'',
'keterangan' => 'Some text', // this columns not in table fields
);
$data[] = $rowData;
}
$output = array(
"draw" => intval($_POST['draw']),
"recordsTotal" => $totalRecords,
"recordsFiltered" => $totalRecords,
"data" => $data
);
echo json_encode($output, JSON_PRETTY_PRINT);
error_log("Data JSON: " . json_encode($output, JSON_PRETTY_PRINT));
exit();
对于 JavaScript 数据表:
$(document).ready(function () {
var table = $('#dataMightyWeb').DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": "actions.php?act=data",
"type": "POST",
"datatype": "json"
},
"lengthChange": false,
"pagingType": "full",
"searching": true,
"paging": true,
"lengthMenu": [[10, 25, 50, -1], ["10", "25", "50", "Show all"]],
"ordering": false,
"info": true,
"responsive": true,
"columns": [
{ "data": "nik" },
{ "data": "email" },
{ "data": "nama_lengkap" }
{ "data": "keterangan", "searchable": true }
],
language: {
"searchPlaceholder": "Pencarian...",
"search": ""
},
"initComplete": function (settings, json) {
table.buttons().container().appendTo('#dataMightyWeb_wrapper .col-md-6:eq(0)');
$('div.dataTables_filter > label > input').addClass('form-control g-font-size-default g-brd-gray-light-v7 g-brd-lightblue-v3--focus g-pl-20 g-pr-50 g-py-8');
// this for search input
$('div.dataTables_filter input').on('keyup', function () {
table
.columns([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]) // Kolom ke-15 adalah kolom "keterangan"
.search(this.value)
.draw();
});
}
});
});
答: 暂无答案
上一个:使用服务器端事件进行扩展
评论