gpt4 book ai didi

php - 如何使用 MYSQL GROUP_CONCAT 获取两个变量?

转载 作者:行者123 更新时间:2023-11-29 01:37:01 25 4
gpt4 key购买 nike

我有一个显示照片 ($file) 的网页,每张照片下方是“喜欢”每张照片的用户列表。每个用户都显示为指向其个人资料的 html 链接。目前,用户通过他们的用户名显示和链接:

<a href=\"profile.php?user_name=".$tag.">".$tag."</a>

但我想知道如何显示用户的姓名,但使用他们的 $user_id 链接到他们的个人资料。有点像

<a href=\"profile.php?user_name=".$user_id.">".$tag."</a>

我在查询中使用 GROUP_CONCAT 来获取喜欢 tbl_collab 中每张照片的所有 user_id 的 ($tag),然后将这些结果加入 tbl_users 获取 user_name 但我不知道如何在 html 链接中显示 user_id 和 user_name。谁能告诉我如何做到这一点?

//Database Query
$sql="SELECT up.file,p.user_name,p.user_id, GROUP_CONCAT(cp.user_name)
FROM tbl_uploads up
LEFT JOIN tbl_users p ON up.user_id = p.user_id
LEFT JOIN tbl_collab c ON up.file = c.file
LEFT JOIN tbl_users cp ON cp.user_id = c.collab_userid
GROUP BY up.file";

$result = $mysqli->query($sql);
while($row = $result->fetch_array())
{
$user_id = explode (",", $row['user_id'] );
$user = explode (",", $row['user_name'] );
$files = explode (",", $row['file']);
$tag_array = explode(',' , $row['GROUP_CONCAT(cp.user_name)']);

foreach($files as $file) {

//File is displayed here

}
foreach($tag_array as $tag) {

//Links to the users who liked the file

<a href=\"profile.php?user_name=".$tag.">".$tag."</a>

}
}

最佳答案

在您的 SQL 中获取 GROUP_CONCAT 中的两个值:

GROUP_CONCAT(CONCAT(cp.user_id,'~',cp.user_name) SEPARATOR '|') AS tagGroup

在标签数组的 foreach 中:

$tag_array = explode('|' , $row['tagGroup']);

foreach($tag_array as $tag) {
list($uid,$uname) = explode('~',$tag,2);

echo "<a href=\"profile.php?user_id=".$uid.">".$uname."</a>";
}

(已更新以使用@Jakumi 的评论和更多示例以清楚起见——注意我使用“|”作为 GROUP_CONCAT 分隔符,因为“\n”的字符转义问题很麻烦这里)

祝你好运!

关于php - 如何使用 MYSQL GROUP_CONCAT 获取两个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39170315/

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