Вернуть оба результата массива и одной строки в данных JSON из PHP, MySQL и шоу в Android Studio

Я создал представление переработчика с его адаптером, который возвращает подробности в моей базе данных sql. Я реализовал функцию поиска, которая работает в моей консоли. Проблема в том, что php-код возвращает все данные в моей базе данных после того, как я нажму на кнопку поиска. Есть ли в любом случае это можно решить?

Как я могу получить php для возврата объекта массива json из базы данных mysqli? После показа результатов в почтальоне, как я могу найти конкретную строку и получить ее в Android-студии?

php code for fetching data


include "../auth/connect_db.php";

$sql = "SELECT * FROM staff_table";
$result = mysqli_query($conn, $sql);
$staff = array();

if (mysqli_num_rows($result)){
while ($row=mysqli_fetch_assoc($result)){
$staff['search'][] = $row;
}
}

mysqli_close($conn);
echo json_encode($staff);

когда веб-сервер / getAllStaff.php? name = босс

Я хотел бы иметь возможность также получить только строку, это детали имени или любой другой строки столбца

0

Решение

Вы не получаете никаких сообщений, поступающих с Android. Затем вы просто выбираете все поля из вашей таблицы, которая приносит все результаты. Сначала проверьте значения post, затем измените оператор SQL и включите предложения WHERE и LIKE в оператор SQL. Что-то вроде этого:

if (!empty($_POST['search'])){
$value = mysqli_real_escape_string($conn, $_POST['search']);

$sql = "SELECT * FROM staff_table where staff LIKE '%$value%'";
$result = mysqli_query($conn, $sql);
$staff = array();
if (mysqli_num_rows($result) > 0 || !empty(mysqli_num_rows($result))){
while ($row = mysqli_fetch_assoc($result)){
$staff['search'][] = $row;
}
echo json_encode($staff);
}
else{
$response["msg"] = "no results found";
echo json_encode($response);
}
} else {
//required post params is missing
$response["msg"] = "Required paramaters missing";
echo json_encode($response);
}
mysqli_close($conn);
0

Другие решения

Других решений пока нет …