如何使用mysql和php选择多行?
我有两张桌子如何使用mysql和php选择多行?,php,mysql,json,Php,Mysql,Json,我有两张桌子 广告 A图像 这里的tableadsid和tableadImagesadsId是相同的。在这里,我必须从表ads和adImages中选择所有行,并以json格式显示 我的代码看起来: $query="SELECT a.*, b.images FROM `ads` AS a INNER JOIN `adImages` AS b ON a.id = b.adsId"; $result=mysql_query($query); $value = mysql_num_rows($re
$query="SELECT a.*, b.images FROM `ads` AS a INNER JOIN `adImages` AS b ON a.id = b.adsId";
$result=mysql_query($query);
$value = mysql_num_rows($result);
if($value>=1)
{
while($row = mysql_fetch_array($result))
{
$details[] = array(
'id' => $row['id'],
'location' => $row['location'],
'title'=>$row['title'],
'mobile' => $row['mobile'],
'description' => $row['description'],
'category' => $row['category'],
'images' =>'http://greenwma.com/dev/uploads/'.$row['images'],
);
}
echo json_encode($details);
}
其输出json如下所示:
[{"id":"10","location":"9.982852,76.300637","title":"Ggg","mobile":"5555555","description":"Google","category":"BusMedia","images":"http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016062319:07:39.jpg{"id":"10","location":"9.982852,76.300637","title":"Ggg","mobile":"5555555","description":"Google","category"BusMedia","images":"http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 17:27:05.jpg"},{"id":"11","location":"9.962439,76.305337","title":"Test","mobile":"898566899","description":"Test","category":"Bus Shelters","images":"http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 19:15:16.jpg"},{"id":"11","location":"9.962439,76.305337","title":"Test","mobile":"898566899","description":"Test","category":"Bus Shelters","images":"http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 19:08:50.jpg"},{"id":"11","location":"9.962439,76.305337","title":"Test","mobile":"898566899","description":"Test","category":"Bus Shelters","images":"http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 19:07:39.jpg"}]
这里的问题是,id、位置、标题、手机、描述、类别对同一adsId上的每个图像重复
我需要的是,我必须以这种格式获取json
[{"id":"10","location":"9.982852,76.300637","title":"Ggg","mobile":"5555555","description":"Google ","category":"Bus Media","images":"http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 19:07:39.jpg","http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 17:27:05.jpg"},{"id":"11","location":"9.962439,76.305337","title":"Test","mobile":"898566899","description":"Test","category":"Bus Shelters","images":"http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 19:15:16.jpg","http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 19:08:50.jpg","http:\/\/greenwma.com\/dev\/uploads\/MapCapture2016-06-23 19:07:39.jpg"}]
也就是说,我必须在单个json对象中获得所有用逗号分隔的图像。为此,我应该在上面的代码中做哪些更改 您可以使用CONCAT()&和子查询在一个查询和较少的循环中完成
SELECT a.*, GROUP_CONCAT(images) images FROM (
SELECT a.*, CONCAT('http://greenwma.com/dev/uploads/', b.images) images
FROM `ads` AS a
INNER JOIN `adImages` AS b ON a.id = b.adsId
) tbl
GROUP BY id
您可以将CONCAT()与子查询一起使用,在一个查询和较少的循环中完成此操作
SELECT a.*, GROUP_CONCAT(images) images FROM (
SELECT a.*, CONCAT('http://greenwma.com/dev/uploads/', b.images) images
FROM `ads` AS a
INNER JOIN `adImages` AS b ON a.id = b.adsId
) tbl
GROUP BY id
为什么您仍在使用mysql_*函数?你知道他们不赞成吧?同意。无论您出于什么原因使用
mysql\u xxx()
函数,您都需要停下来学习如何使用PDO库。mysl_xx()
函数已经从最新的PHP版本中删除,并且在那之前的十多年中一直被认为是不好的做法。你的代码严重落后于时代。为什么你还在使用mysql_*函数?你知道他们不赞成吧?同意。无论您出于什么原因使用mysql\u xxx()
函数,您都需要停下来学习如何使用PDO库。mysl_xx()
函数已经从最新的PHP版本中删除,并且在那之前的十多年中一直被认为是不好的做法。你的代码严重落后于时代。