gpt4 book ai didi

php - 在 while 循环中使用 GROUP_CONCAT 在一行中输出同一用户的多个数据库条目

转载 作者:行者123 更新时间:2023-11-29 18:33:19 26 4
gpt4 key购买 nike

想要使用 GROUP_CONCAT 从具有多个图像条目的用户 ID 检索数据库信息(图像)。这些图像采用文件路径的形式。然后希望每个用户 ID 在一行中输出图像。

经过对此事的广泛研究,我找到了所需的简单示例,但我对当前的查询感到迷失。

这是我现在的代码:

<table>
<th></th>
<th>Name</th>
<th>Location</th>
<th>High School</th>
<th class="thLargest">Colleges</th>
</table>
<table>
<?php
session_start();

$conn = mysqli_connect("", "", "", "");


if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql = "SELECT college.id, college.title, GROUP_CONCAT(college.image) AS cImage, users.profileImage, users.fname, users.lname, users.level AS ulevel, users.city, users.state, users.highschool, users.primarysport, usercollege.id, usercollege.collegeid
FROM college, users, usercollege
WHERE usercollege.collegeid = college.id AND usercollege.userid = users.id
ORDER BY usercollege.createdate ASC";


if ($result = mysqli_query($conn, $sql)) {
while ($row = mysqli_fetch_assoc($result)) {


if ($row['status'] == null) {
echo "";
}

if ($row['ulevel'] == "A Profile") {
echo '<tr>' .
'<td class="small">' . '<a href="http://www.example.com/aprofile.php?user="'.$row["username"] . '>' . '<img src="'.$row['profileImage'].'" />' . '</a>' . '</td>' .
'<td class="large">' . $row['fname']. ", " . $row['lname'] . '</td>' .
'<td class="large">' . $row['city'] . ", " . $row['state'] . '</td>' .
'<td class="large">' . $row['highschool'] . " (" . $row['primarysport'] . ") " . '</td>' .
'<td class="largest">' .
'<div class="Limage">' . '<img src="images/colleges/'.$cImage.'"/>' . '</div>' .
'</td>' .
'</tr>';
}

}


mysqli_free_result($result);
}

mysqli_close($conn);
?>
</table>

有问题的图像部分是 '<img src="images/colleges/'.$cImage.'"/>' . '</div>'

一个用户最多可以拥有 10 个大学图像条目,因此我想并排显示这些图像,而不是使用相同的用户 ID 显示在不同的行中。

换句话说,我想将数据库中的多行用户数据分组到一行中,并且表中没有重复的用户 ID。

我读过有关分解 cImage 和使用 foreach 的内容,但这就是我缺乏经验的原因。

最佳答案

SELECT users.profileImage
, users.fname
, users.lname
, users.city
, users.state
, users.highschool
, users.primarysport
, group_concat(college.image) AS cImage
FROM usercollege
INNER JOIN users
ON users.id = usercollege.userid
INNER JOIN college
ON college.id = usercollege.collegeid
GROUP BY users.id
ORDER BY usercollege.createdate ASC

并且

foreach( explode(',', $row['cImage']) as $img )
echo '<div class="Limage">' . '<img src="images/colleges/'.$img.'"/>' . '</div>';

关于php - 在 while 循环中使用 GROUP_CONCAT 在一行中输出同一用户的多个数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45516926/

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