Php 如何在一个“窗口”中获取属于用户的所有图像;“循环”;
我有两个名为users和images的mysql表。每个用户最多有5张图片。在一个页面中,我显示用户信息和所有图像。 当我这样问的时候Php 如何在一个“窗口”中获取属于用户的所有图像;“循环”;,php,mysql,Php,Mysql,我有两个名为users和images的mysql表。每个用户最多有5张图片。在一个页面中,我显示用户信息和所有图像。 当我这样问的时候 SELECT SQL_CALC_FOUND_ROWS, u.username, u.gender, u.etc ......... i.picture FROM users u LEFT JOIN images i on u.id = i.id WHERE some_condition 结果是为每个图像重复用户信息。 比如说 us
SELECT
SQL_CALC_FOUND_ROWS,
u.username,
u.gender,
u.etc
.........
i.picture
FROM users u
LEFT JOIN images i on u.id = i.id
WHERE
some_condition
结果是为每个图像重复用户信息。
比如说
- userX年龄19图片1
- 用户X年龄19图片2
- userX年龄19图3
- 等等
用户名
年龄
性别
图1、图2、图3
等等。我建议您运行两个查询,一个用于用户,另一个用于每个用户的图片。试图在一个查询中获得它,并以您想要的方式对其进行结构化是非常复杂的。您可以使用mysql的group_concat
$rowset = array(); // your fetched data
$user = $rowset[0];
unset($user['picture']);
$user['pictures'] = array();
foreach ( $rowset as $row ) {
$user['pictures'][] = $row['picture'];
}
SELECT SQL_CALC_FOUND_ROWS,
u.username,
u.gender,
u.etc,
...
GROUP_CONCAT(i.picture SEPARATOR ",") AS pictures
FROM users u
LEFT JOIN images i on u.id = i.id
WHERE
some_condition
GROUP BY u.id
我现在还没有测试过,但我想我的记忆力没有衰退。您将在“图片”列中以逗号分隔所有图片。@rodrigo别忘了用这种方法检查下一个用户记录;)