gpt4 book ai didi

php - 在配置文件中对图像进行分组

转载 作者:可可西里 更新时间:2023-11-01 12:57:21 25 4
gpt4 key购买 nike

我有一个在列表中显示配置文件的配置文件。如下图所示。

enter image description here

用户

 id    |  email  |  full_name  |  job_title  | bio |  profile_photo  

图片表格

 image_id  | id  | artist_img

代码

<?php 

$db = dbconnect();
$stmt = $db->prepare('SELECT
users.email,
users.full_name,
users.job_title,
users.bio,
users.profile_photo,
images.id,
images.artist_img
FROM users
INNER JOIN images ON users.id=images.id GROUP BY images.id');
$stmt->execute();
$result = $stmt->get_result();

while (($row = mysqli_fetch_assoc($result)) != false) {

$id = $row['id'];
$full_name = $row['full_name'];
$email = $row['email'];
$job_title = $row['job_title'];
$bio = $row['bio'];
$ProfilePhoto = $row['profile_photo'];
$artist_img = $row['artist_img'];


if (isset($ProfilePhoto) && ! empty($ProfilePhoto)) {
$image = "$ProfilePhoto";
} else {
$image = "avatar.jpg";
}

echo "<div class='container team-wrap'>
<div class='row'>
<div class='col-md-6'>
<img class='img-responsive' src='artist/$image'>
</div>
<div class=\"col-md-6\">
<strong>$full_name<br>$job_title</strong>
<br>
<p>$bio</p>
<a href='mailto:$email' class='btn btn-info'>Contact Me</a>
</div>
</div>
</div>

<div class=\"container space team-wrap\">
<div class=\"row\">
<div class=\"col-lg-12\">
<div id=\"gallery-slider\" class=\"slider responsive\">
<div>";




echo"
<img src=\"gallery/$artist_img\" alt=\"\"></a>";




echo "</div>
</div>
<hr>
</div>
</div>
</div>";
}
?>

问题区域

echo"<img src=\"gallery/$artist_img\" alt=\"\"></a>"; 

我遇到的问题是,如果用户有 5 张图片,它会为每张图片重复配置文件,它将为每个 img 添加 5 个配置文件 1。

并且根本不显示其他用户的个人资料。显示它是如何显示的是查看图像,例如它在个人资料 1 下有 4 张图像,并在那里显示个人资料图片。它会为每张图像重复所有信息,我希望显示与用户具有相同 ID 的照片像下面的 slider 一样向上..

并且它也拒绝显示其他用户的其他个人资料。

最佳答案

这是因为您以错误的方式对数据进行了分组。

正如您的问题所述,用户 ID 有多行,您正尝试使用 GROUP BY 在一行中显示这些多个结果。因此,数据库不可能像这样对数据进行分组,因为它不知道数据之间的任何关系以及如何处理多个结果。

但是,您可以在此处使用 JOIN,因为这是您尝试执行的操作。使用以下查询

SELECT * FROM `users` LEFT JOIN `images` ON images.id = users.id

然后你应该像这样处理结果:

$users = [];
foreach($results as $row){
if(isset($users[$row->userId]))
$users[$row->userId][] = $row->imageUrl;

else
$users[$row->userId] = [$row->imageUrl];
}

$users 是您想要的。它应该可以完成工作。

关于php - 在配置文件中对图像进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41994715/

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