[英]Create Multidimensional JSON from PHP INNER JOIN table
我是一個新學習者。 我的mySQL數據庫中有3個表,第一個是“user”,第二個是product_detail,第三個是product_images。 他們正在使用外鍵加入。 像: mySql表 ,我正在使用php PDO oops for desire output。
我想顯示具有產品圖像的特定用戶產品的列表。 所以我得到的對象如下:
[
{
"user_id": "1",
"product_id": "7",
"product_name": "product title",
"product_description": "product description",
"product_img_id": "1",
"product_img_path": "/products/product1.jpg",
"product_img_type": "main"
},
{ ... },
{ ... },
{ ... },
]
我的Php對象類函數代碼:
function read(){
$query = "SELECT
p.user_id, p.product_id, p.product_name, p.product_description,
p1.product_img_id, p1.product_img_path, p1.product_img_type
FROM user AS p
LEFT JOIN product_description AS p1
ON p.product_id = p1.product_id
ORDER BY p.user_id DESC, p.product_id DESC";
$stmt = $this->conn->prepare($query);
$stmt->execute();
return $stmt;
}
這是我的創建對象代碼:
if ($num > 0) {
$products_arr = array();
while ($row = $stmt -> fetch(PDO:: FETCH_ASSOC)) {
extract($row);
$product_item = array(
"user_id" => $user_id,
"product_id" => $product_id,
"product_name" => $product_name,
"product_description" => $product_description,
"product_img_id" => $product_img_id,
"product_img_path" => $product_img_path,
"product_img_type" => $product_img_type
);
$products_arr[] = $product_item;
}
echo json_encode($products_arr);
}
所以我需要一個像這樣的對象:
{
"user_id" : "1",
"product" : [
{
"user_id": "1",
"product_id": "1",
"product_name": "product title ",
"product_description": "this is product description",
"product_images": [
{
"product_img_id": "1",
"product_img_path": "/products/product1.jpg",
"product_img_type": "main"
},
{...},
{...},
{...},
{...}
]
},
{...},
{...},
{...}
]
}
我想要
{ **user**
{ all **product** of this user {
all **images** of this product
}
}
}
在您的PHP代碼中,您將以下代碼更改為底部的代碼
$product_item = array(
"user_id" => $user_id,
"product_id" => $product_id,
"product_name" => $product_name,
"product_description" => $product_description,
"product_img_id" => $product_img_id,
"product_img_path" => $product_img_path,
"product_img_type" => $product_img_type
);
以下內容:
$product_image = array(
"product_img_id" => $product_img_id,
"product_img_path" => $product_img_path,
"product_img_type" => $product_img_type
);
$product = [
"product_id" => $product_id,
"product_name" => $product_name,
"product_description" => $product_description,
"product_images" => $product_image
];
$product_item = array(
"user_id" => $user_id,
"product" => $product
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.