Как правильно зациклить и создать JSON, используя записи базы данных в PHP

попробуйте это,

android.os.Process.killProcess(pid)

, который будет работать ...

4
задан Nancy Mooree 31 March 2019 в 08:14
поделиться

3 ответа

Когда вы говорите «получить результаты», вы имеете в виду, что хотите получить доступ к этим значениям? Если это так, присвойте свои данные json переменной, скажем, data.

Затем: $json = json_decode($data);

foreach($json[0] as $values1) {
    var_dump($values1);
}

foreach($json[1] as $values2) {
    var_dump($values2);
}

Чтобы получить имя продукта, например, из первого объекта, вы должны сделать $ values1-> product_name. И так далее для других свойств.

0
ответ дан Natalie Mclaren 31 March 2019 в 08:14
поделиться

Я переделал ваш php-код, чтобы вы могли получить желаемый результат.

Вместо строк assignind, возвращаемых из запроса mysql, создайте ассоциативный массив в соответствии с вашим требованием, а затем преобразуйте его в json


<?php

$host = "localhost"; /* Host name */
$user = "root"; /* User */
$password = ""; /* Password */
$dbname = "mydb"; /* Database name */

$con = mysqli_connect($host, $user, $password,$dbname);
// Check connection
if (!$con) {
    die("Connection failed: " . mysqli_connect_error());
}

    $res_arr = array();
$query = '
    SELECT 
c.id,
c.category_name,
c.buyer_userid,
p.id,
p.product_name,
p.buyer_userid,
p.category_id,
s.items_id,
s.item_name,
s.quantity
    FROM `categorys` c
        INNER JOIN `product` p ON c.id=p.category_id
        INNER JOIN `sales` s ON p.id=s.product_id
    ORDER BY c.id';

    $result = mysqli_query($con,$query);
    while($row = mysqli_fetch_array($result)){    

        $res['id'] = $row[0];
        $res['cat_name'] = $row[1];
        $res['catbuy_userid'] = $row[2];
        $res['products_info']['id'] = $row[3];

        $res['products_info']['productid'] = $row[4];
        $res['products_info']['product_name'] = $row[5];
        $res['products_info']['buyer_userid'] = $row[6];

        $res['products_info']['sales_info']['items_id'] = $row[7];
        $res['products_info']['sales_info']['items_name'] = $row[8];
        $res['products_info']['sales_info']['buyer_userid'] = $row[6];
        $res['products_info']['sales_info']['quantity'] = $row[9];

        $res_arr[] = $res;
  }

}
  echo json_encode($res_arr);

?>

0
ответ дан SachinPatil4991 31 March 2019 в 08:14
поделиться

Это можно сделать, приведя от (array) $row к (object) $row:

$res_arr = array();
while($row = $result->fetch_assoc()){    
    array_push($res_arr, (object) $row);
}
header("Content-type: application/json; charset=utf-8");
die(json_encode($res_arr));

Я бы использовал fetch_assoc () , чтобы предотвратить дублирование пронумерованных полей, которые просто раздувают полезная нагрузка ... все вложение в основном бесполезно, и оно дает только качество мусорного кода, в то время как нигде нет больше, чем один вложенный элемент (и это впоследствии сложнее, чем необходимо для доступа на стороне клиента). Вложение будет иметь смысл, когда, например. сначала выбирая все categories, а затем вкладывая все products для этого category, прежде чем перейти к следующему category.

0
ответ дан Martin Zeitler 31 March 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: