Упаковка выборки из 2 таблица в JSON

216
17 ноября 2017, 09:05

Добрый день. Второй день бьюсь над проблемой: необходимо вернуть JSON объект, для дальнейшей обработки в android-приложении. На сервере есть php-скрипт, который делает выборку из MySQL:

$NUM = $_REQUEST[PART_NUMBER];
$query = "SELECT * FROM PARTS_INFO WHERE PART_NUMBER = '$NUM' LIMIT 30";

Дальше все это дело передается в JSON:

if ($result = mysqli_query($mysqli, $query)) {
  while ($row = $result->fetch_assoc()) {
        $part[ID] = $row[ID];
        $part[PART_NAME] = $row[PART_NAME];
        $part[PART_NUMBER] = $row[PART_NUMBER];
  }
  echo json_encode($part);

При таком раскладе все отрабатывает нормально. А вот когда я пытаюсь взять данные из двух таблиц выборкой:

$NUM = $_REQUEST[PART_NUMBER];
$query = "SELECT PARTS_INFO.PART_NAME, PARTS_FEED.PART_F 
FROM PARTS_INFO, PARTS_FEED 
WHERE PARTS_INFO.ID = PARTS_FEED.ID_PARTS_INFO 
AND PARTS_INFO.PART_NUMBER = $NUM LIMIT 30";

Android Studio выдает ошибку (хотя выборка выдает то, что надо):

org.json.JSONException: End of input at character 0 of 
org.json.JSONTokener.syntaxError(JSONTokener.java:449)
org.json.JSONTokener.nextValue(JSONTokener.java:97)
org.json.JSONObject.<init>(JSONObject.java:156)
org.json.JSONObject.<init>(JSONObject.java:173)

С php я не знаком. Но думаю, что я как-то не так наполняю массив. Подскажите, как быть, куда копать?

Обработка JSON объекта:

        try
        {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
            Log.e("pass 2", "connection success " + result);
        } catch (Exception e)
        {
            Log.e("Fail 2", e.toString());
        }
        try
        {
            JSONObject json_data = new JSONObject(result);
            PART_NAME = (json_data.getString("PART_NAME"));
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
READ ALSO
Как вывести данные из БД

Как вывести данные из БД

Здравствуйте, у меня в БД есть поле(varchar) и в нем хранятся слова через запятую (Слово, слово2, слово3) и у меня вопрос: Как правильно с помощью...

171
Замена текстовых запросов

Замена текстовых запросов

Например, я получаю данные через $_POST в виде:

212
Защита curl запроса

Защита curl запроса

Есть curl запрос который принимает данные и записывает в бдВопрос: есть ли какая уязвимость здесь и если есть то как защититься? Я про подделывания...

214
Определить, есть ли в строке изображения

Определить, есть ли в строке изображения

ЗдравствуйтеЕсть переменная $text в которой находится текст в виде html содержимого

161