Ich habe eine Rasteransicht auf meiner Seite. Das Gitter wird aus meiner Datenbank gefüllt. Ich habe eine Suche in meinem Skript erstellt, also wenn ich die number
, name
oder price
eintippe, bekomme ich die korrekten Daten.Gridview Suche funktioniert nicht mehr nach dem Hinzufügen einer WHERE-Anweisung
My SQL-Abfrage Informationen zu erhalten, ist die folgende:
$sql = "SELECT id, name, price FROM employees";
Jetzt möchte ich mein Skript und die relevanten Informationen für einen bestimmten Benutzer erweitern. Aber wenn ich eine WHERE-Anweisung auf meine SQL-Abfrage hinzufügen, stoppt die Suchfunktion arbeitet
Dies ist die SQL-Abfrage Ich brauche:
$sql = "SELECT id, name, price FROM employees WHERE user_id='1'";
Ich weiß nicht, was mit diesem falsch ist. Diese Abfrage zeigt mir die richtigen Daten, aber die Suchfunktion funktioniert nicht mehr. Ich habe auch versucht, diese SQL-Abfrage in phpMyAdmin und nichts ist falsch damit.
Kann mir jemand bei diesem Problem helfen. Ich weiß wirklich nicht, was falsch ist:
Hier ist das Skript, das ich verwende, um Informationen aus meiner Datenbank zu erhalten. Die SQL-Abfrage ist auf der Linie 24: - response.php -
<?php
include_once("connection.php");
$params = $columns = $totalRecords = $data = array();
$params = $_REQUEST;
$columns = array(
0 =>'id',
1 =>'name',
2 => 'price',
3 => 'user_id'
);
$where = $sqlTot = $sqlRec = "";
if(!empty($params['search']['value'])) {
$where .=" WHERE ";
$where .=" (id LIKE '".$params['search']['value']."%' ";
$where .=" OR name LIKE '".$params['search']['value']."%' ";
$where .=" OR price LIKE '".$params['search']['value']."%')";
}
$sql = "SELECT id, name, price FROM employees WHERE user_id='1'";
$sqlTot .= $sql;
$sqlRec .= $sql;
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");
while($row = mysqli_fetch_row($queryRecords)) {
$data[] = $row;
}
$json_data = array(
"draw" => intval($params['draw']),
"recordsTotal" => intval($totalRecords),
"recordsFiltered" => intval($totalRecords),
"data" => $data
);
echo json_encode($json_data);
?>
Edit 1:
Jetzt habe ich:
if(!empty($params['search']['value'])) {
$where .=" WHERE ";
$where .=" (id LIKE '".$params['search']['value']."%' ";
$where .=" OR name LIKE '".$params['search']['value']."%' ";
$where .=" OR price LIKE '".$params['search']['value']."%') AND user_id='1'
$sql = "SELECT id,name,price FROM customers";
Als ich das laufen, bekomme ich eine Rasteransicht ohne user_id='1'
und eine Suchfunktion mit user_id='1'
. Ich brauche user_id='1'
in beiden von ihnen.
Einstellung verwenden http://php.net/manual/en /mysqli.error.php und var_dump diese Abfrage, Sie werden sehen, was hier vor sich geht. Wenn Sie sehen, dass Sie die Fehlerprüfung verwenden, was ist der Fehler, den Sie bekommen? –
Muss ich einen 'var_dump' von' $ sql' erstellen? 'var_dump ($ sql);' – John
@ Fred-ii- Ich bekomme keinen Fehler. – John