我有一个数据库结构:
WORK | NAME | USER_ID
5 | UL7 | 7
5 | LL5 | 7
6 | UR9 | 7
6 | UL7 | 7
我写了一个从db中获取数据的函数:
function fetchRegion($user_id){
global $mysqli;
$stmt = $mysqli->prepare("SELECT name,work from region WHERE user_id =?");
$stmt->bind_param("s",$id);
$stmt->execute();
$stmt->bind_result($work,$name);
while($stmt->fetch()){
$row[] = array('work'=>$work,'name'=>$name);
}
$stmt->close();
return $row;
}
现在我遇到的问题是我想表示应该显示的数据
5 => UL7,LL5和6 => UR9,UL7
但是我在数组中得到一个输出。现在可以做些什么来表示以上述格式而不是数组显示的数据。
提前致谢!!
答案 0 :(得分:1)
您可以在SQL查询中使用GROUP_CONCAT()
函数和GROUP BY
,如下所示:
SELECT `work`, GROUP_CONCAT(`name`) FROM `region` WHERE `user_id` =? GROUP BY `name`
然后,获取的结果将是这样的:
work | name
------------
5 | UL7,LL5
6 | UR9,UL7
希望它有所帮助!