2016-12-25 26 views
0

DataTablesを使用していますが、エラーが発生しているため、エラーの原因を特定できません。DataTablesサーバー側の処理中にエラーが発生しました

私は11k行を挿入した後に遅れるので、サーバー側の処理を使用したいと思います。

Error

コード私が使用しています:私は、任意の解決策を見つけることではないのです

<?php 
/* Database connection start */ 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "accounts"; 

$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error()); 

/* Database connection end */ 


// storing request (ie, get/post) global array to a variable 
$requestData= $_REQUEST; 


$columns = array( 
// datatable column index => database column name 
    0 =>'type', 
    1 => 'country', 
    2 => 'information', 
    3 => 'seller', 
    4 => 'price' 
); 

// getting total number records without any search 
$sql = "SELECT type, country, information, seller, price "; 
$sql.=" FROM accounts WHERE type2='1'"; 
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); 
$totalData = mysqli_num_rows($query); 
$totalFiltered = $totalData; // when there is no search parameter then total number rows = total number filtered rows. 


$sql = "SELECT type, country, information, seller, price "; 
$sql.=" FROM accounts WHERE type2='1' AND 1=1"; 
if(!empty($requestData['search']['value'])) { // if there is a search parameter, $requestData['search']['value'] contains search parameter 
    $sql.=" AND (type LIKE '".$requestData['search']['value']."%' ";  
    $sql.=" OR country LIKE '".$requestData['search']['value']."%' "; 

    $sql.=" OR information LIKE '".$requestData['search']['value']."%')"; 

     $sql.=" OR seller LIKE '".$requestData['search']['value']."%')"; 

} 
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); 
$totalFiltered = mysqli_num_rows($query); // when there is a search parameter then we have to modify total number filtered rows as per search result. 
$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; 
/* $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc */  
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); 

$data = array(); 
while($row=mysqli_fetch_array($query)) { // preparing an array 
    $nestedData=array(); 

    $nestedData[] = $row["type"]; 
    $nestedData[] = $row["country"]; 
    $nestedData[] = $row["information"]; 
     $nestedData[] = $row["seller"]; 
    $nestedData[] = $row["price"]; 


    $data[] = $nestedData; 
} 



$json_data = array(
      "draw"   => intval($requestData['draw']), // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw. 
      "recordsTotal" => intval($totalData), // total number of records 
      "recordsFiltered" => intval($totalFiltered), // total number of records after searching, if there is no searching then totalFiltered = totalData 
      "data"   => $data // total data array 
      ); 

echo json_encode($json_data); // send data as json format 

?> 

開始と秩序の鍵を持っているので、彼らが空でないかどうかを確認するためにisset()またはempty()機能を使用しないPHPファイル

Image

+0

私はSQLインジェクションの脆弱性を参照していますか? – GurV

+0

はい私はそう思います。 これは私がgoogleから得たコードです。 –

+0

必ずエラーを画像ではなくテキストとして送信してください。あなたが次のサインイン時に上記を置き換えることができれば、それは素晴らしいことでしょう。この質問は "関連"のサイドバー([ここ、](http://stackoverflow.com/q/4261133/472495))で以前に尋ねられていることがわかります。 – halfer

答えて

2

$requestData上に表示されるエラー、のみそれらを使用しています。例えば

LIMIT " . (empty($requestData['start']) ? 
    'whatever you want to put default value' : 
    $requestData['start']) 
+0

これは機能しません。 –

関連する問題