gpt4 book ai didi

php - 如何多次获取特定字段值..我的输出来自两个不同的表通过 INNER JOIN

转载 作者:搜寻专家 更新时间:2023-10-30 23:30:47 24 4
gpt4 key购买 nike

我想要两个表的输出..
一张表用于Product_detail,第二张表用于Product_image

product_image 表中,所有图片分别存储特定的 product_id

我想要两个表的输出:
对于特定的 product_id,Product_detail 表中的所有详细信息和 Product_image 表中的所有图像

我的代码:

<?php
error_reporting(0);

$response = array();
$response1 = array();

require_once __DIR__ . '/db_Connect.php';


// check for post data
if (isset($_GET["pro_id"])) {

$pid = $_GET['pro_id'];

// get a product from products table
//$result = mysql_query("SELECT * FROM product_list WHERE pro_id = '".$pro_id."'");
$q="SELECT product_list.pro_id,product_list.product_name,product_list.product_desc,product_images.image
FROM product_images
INNER JOIN product_list ON product_list.pro_id = product_images.pro_id
WHERE product_list.pro_id = '$pid'";

$res=mysql_query($q);


if (!empty($res)) {

// user node
$response["product"] = array();
$result = mysql_fetch_assoc($res);
//var_dump($result);
$count=count($result['image']);
$count++;

var_dump($count);

$product=array();
$product['pro_id']=$result['pro_id'];
//$product['cat_id']=$result['cat_id'];
$product['product_name']=$result['product_name'];
$product['product_desc']=$result['product_desc'];

//$product['image']="http://friendzfashionz.com/pandora/admin/".$result['image'];

$clr=array();
for($i=0;$i<$count;$i++)
{

$clr[$i]="http://friendzfashionz.com/pandora/admin/".$result['image'];
//var_dump($clr[$i]);
array_push($response1["images"], $clr[$i]);

}
$product['image']=$clr;


array_push($response["product"], $product);

$response["success"] = 1;
echo json_encode($response);

} else {
// no product found
$response["success"] = 0;
$response["message"] = "No user found";

// echo no users JSON
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";

// echoing JSON response
echo json_encode($response);
}
?>

这段代码的输出是:

int(2) {"product":[{"pro_id":"13","product_name":"jeans","product_desc":"Monkey wash ","image":["http:\/\/friendzfashionz.com\/pandora\/admin\/Sub_uploads\/download (1).jpg","http:\/\/friendzfashionz.com\/pandora\/admin\/Sub_uploads\/download (1).jpg"]}],"success":1}  

我在 product_image 表中有两个不同的 pro_id 图片
我想要一次 product_details 和那个 pro_id 的所有 product_image..
但问题是它给了我两次第一张图片..

请帮忙解决这个问题...

Product_detail 表:

product_detail

产品图片表:

product_image

最佳答案

问题是您返回了两行,但随后只调用了一次

$result = mysql_fetch_assoc($res);

所以你只处理第一行。

相反,在 product_list 值上使用 GROUP BY 并在图片。

这将为产品返回一行,其中包含以逗号分隔的图像列表。

然后您可以使用 EXPLODE() 单独获取一组图像。

例如

SELECT pl.pro_id, pl.product_name, pl.product_desc, 
GROUP_CONCAT(pi.image) AS 'images'
FROM product_images pi
INNER JOIN product_list pl ON (pl.pro_id = pi.pro_id)
WHERE pl.pro_id = ?
GROUP BY pl.pro_id, pl.product_name, pl.product_desc;

此外,您仍在使用 mysql_query(),它已在 PHP 5.5 中弃用并在 PHP 7 中删除。您应该使用 PDO 或 mysqli 的参数化查询,否则您的应用程序将在升级时中断PHP 和您同时让自己对 SQL 注入(inject)敞开大门。

https://secure.php.net/manual/en/class.pdo.php

https://secure.php.net/manual/en/class.mysqli.php

关于php - 如何多次获取特定字段值..我的输出来自两个不同的表通过 INNER JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49357798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com