다양한 레코드 내부를 검색하는 검색 스크립트를 만들었지 만 SQL에서 WHERE 세션을 추가하면 스크립트가 더 이상 작동하지 않습니다. 당신이 코드를 확인하고 제가 어떻게 작동하도록 스크립트를 변경할 수 있는지 조언 해 주시겠습니까? 당신이 당신의 쿼리를 구성 할 때 분명히 로그인 한 사용자를 위해, 당신은 where user_id = ?
절을 추가세션 ID 및 검색 스크립트
<?php
//include connection file
include_once("connection.php");
session_start();
if (!isset($_SESSION['GEBRUIKER_ID'])) {
header ("Location: ");
die;
}
// initilize all variable
$params = $columns = $totalRecords = $data = array();
$params = $_REQUEST;
//define index of column
$columns = array(
0 =>'id',
1 =>'user_id',
2 => 'klant_id',
3 => 'naam_klant',
4 => 'contactpersoon',
5 => 'adres'
);
$where = $sqlTot = $sqlRec = "";
// check search value exist
if(!empty($params['search']['value'])) {
$where .=" WHERE ";
$where .=" (naam_klant LIKE '".$params['search']['value']."%' ";
$where .=" OR contactpersoon LIKE '".$params['search']['value']."%' ";
$where .=" OR adres LIKE '".$params['search']['value']."%')";
}
// getting total number records without any search
$sql = "SELECT id,naam_klant,contactpersoon,adres FROM klanten WHERE user_id='".$_SESSION['GEBRUIKER_ID']."' ";
$sqlTot .= $sql;
$sqlRec .= $sql;
//concatenate search sql if value exist
if(isset($where) && $where != '') {
$sqlTot .= $where;
$sqlRec .= $where;
}
$sqlRec .= " ORDER BY ". $columns[$params['order'][0]['column']]." ".$params['order'][0]['dir']." LIMIT ".$params['start']." ,".$params['length']." ";
$queryTot = mysqli_query($conn, $sqlTot) or die("database error:". mysqli_error($conn));
$totalRecords = mysqli_num_rows($queryTot);
$queryRecords = mysqli_query($conn, $sqlRec) or die("error to fetch employees data");
//iterate on results row and create new index array of data
while($row = mysqli_fetch_row($queryRecords)) {
$data[] = $row;
}
$json_data = array(
"draw" => intval($params['draw']),
"recordsTotal" => intval($totalRecords),
"recordsFiltered" => intval($totalRecords),
"data" => $data // total data array
);
echo json_encode($json_data); // send data as json format
?>
<script type="text/javascript">
$(document).ready(function() {
$('#employee_grid').DataTable({
"bProcessing": true,
"serverSide": true,
"ajax":{
url :"response.php", // json datasource
type: "post", // type of method ,GET/POST/DELETE
error: function(){
$("#employee_grid_processing").css("display","none");
}
}
});
});
</script>
<div class="container">
<div class="">
<h3>Klanten overzicht</h3>
<div class="">
<table id="employee_grid" class="display" width="100%" cellspacing="0">
<thead>
<tr>
<th>Klantnummer</th>
<th>Naam</th>
<th>Contactpersoon</th>
<th>Adres</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Klantnummer</th>
<th>Naam</th>
<th>Contactpersoon</th>
<th>Adres</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
당신이 SQL 쿼리를 확인나요 : 당신은 한 쿼리에서 두
where
의를 가질 수 없습니다,이 같은and
을 수있다? – John나는 그랬다. 현재 쿼리는 다음과 같습니다. SELECT ID, 이름, 연락처, 주소, 사용자 ID = ' ". $ _ SESSION ['GEBRUIKER_ID ']."'; 어디서 user_id = ' "을 제거 할 때. $ _ SESSION ['GEBRUIKER_ID ']." 스크립트는 작동하지만 로그인 한 사용자는 관련된 클랜튼을 가져올 수 없습니다. –