Я занимаюсь поисковой деятельностью, которая сканирует базу данных и показывает результаты в android. Вот мой php-кодЯ использую POST, но все равно продолжаю получать все строки
$keyword = $_POST["keyword"];;
$query = "select * from user where u_name like '%$keyword%' OR u_lname like '%$keyword%' OR u_email like '%$keyword%';";
$result = mysqli_query($con,$query);
$response = array();
while($row = mysqli_fetch_array($result))
{
array_push($response, array("u_id" => $row[0], "u_name" => $row[1],"u_lname" =>$row[2],"u_email" =>$row[3], "u_pw" =>$row[4], "u_dp" => $row[5]));
}
echo json_encode(array("search_response"=>$response));
Я получаю всех пользователей, как я могу искать, как хочу?
вот мой андроид код Java
HashMap<String, String> params = new HashMap<String, String>();
params.put("keyword", "ka");
JsonObjectRequest req = new JsonObjectRequest("http://ksdb.comlu.com/search.php", new JSONObject(params),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray= response.getJSONArray("search_response");
for(int i = 0; i < jsonArray.length(); i ++){
JSONObject user = jsonArray.getJSONObject(i);
String id = user.getString("u_id");
String name = user.getString("u_name");
String surname = user.getString("u_lname");
String email = user.getString("u_email");
String password = user.getString("u_pw");
String department = user.getString("u_dp");
User newUser = new User(id, name, surname, email, password, department);
userArrayList.add(newUser);
}
setUsersListView(userArrayList);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.e("Error: ", error.getMessage());
}
});
RequestQueue queue = Volley.newRequestQueue(MainUserPage.this);
queue.add(req);
}
private void updateSchedule() {
User user = userLocalStore.getLoggedInUser();
String key = user.getId();
ArrayList<String> checkedSchedule = checkSchedule();
Response.Listener<String> updateListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
} catch (JSONException e) {
e.printStackTrace();
}
}
};
UpdateScheduleRequest updateScheduleRequest = new UpdateScheduleRequest(key,checkedSchedule,updateListener);
RequestQueue queue = Volley.newRequestQueue(MainUserPage.this);
queue.add(updateScheduleRequest);
Я действительно много о PHP не знаю, что я не мог найти, как решить мою проблему.
введите некоторые данные, которые вы ищете, плюс то, что вы ищете. Нет проблем с запросом. –
Привет, SQL-инъекция! http://php.net/manual/en/mysqli.prepare.php – Sammitch
В чем проблема? Но используйте mysqli_fetch_assoc() вместо mysqli_fetch_array() и проверьте ввод, если он действителен. Итак, вы должны использовать фреймворк: p – Loenix