【发布时间】:2016-03-08 09:15:00
【问题描述】:
我正在尝试在另一个数组的 foreach 语句中使用一个数组中的变量。
我有一个网格视图,它显示用户的个人资料照片、他们的显示名称、当前位置和可用性,以及使用他们的用户名来完成应用于框的链接。
用户的表持有;我将来需要的用户名(和用户 ID)。
配置文件表保存;显示名称。
profilephotos 表保存;个人资料照片。
位置表保存;当前位置。
所有都通过与用户表匹配的 user_id 和 username 列在表中链接。
我的用户框代码是;
<?php foreach($rows as $row): ?>
<div class="box">
<div class="boxInner">
<a href="profile.php?username=<?php echo htmlentities($row['username'], ENT_QUOTES, 'UTF-8'); ?>&uid=<?php echo htmlentities($row['id'], ENT_QUOTES, 'UTF-8'); ?>">
<img src="uploads/profile-photos/<?php echo htmlentities($pphoto['profilephoto_file'], ENT_QUOTES, 'UTF-8'); ?>" />
<div class="titleBox" style="text-align:left; line-height:20px;">
<span style="font-size:18px; font-weight:bold;"><i class="fa fa-user"></i> <?php echo htmlentities($row['profile_displayname'], ENT_QUOTES, 'UTF-8'); ?>,
<?php echo htmlentities($row['profile_displayage'], ENT_QUOTES, 'UTF-8'); ?></span>
<br />
<span style="font-size:14px;"><i class="fa fa-map-marker"></i> City Name | <i class="fa fa-clock-o"></i> Now</span>
</div></a>
</div>
</div>
<?php endforeach; ?>
我的SQL查询和数组代码是;
$query = "
SELECT
users.id,
users.username,
users.email,
profiles.profile_displayname,
profiles.profile_displayage,
profiles.profile_photo
FROM users, profiles
WHERE users.id = profiles.user_id;
";
try
{
// These two statements run the query against your database table.
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to run query: " . $ex->getMessage());
}
// Finally, we can retrieve all of the found rows into an array using fetchAll
$rows = $stmt->fetchAll();
$query = "
SELECT
users.id,
users.username,
profilephotos.user_id,
profilephotos.profilephoto_file
FROM users, profilephotos
WHERE users.id = profilephotos.user_id;
";
try
{
// These two statements run the query against your database table.
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to run query: " . $ex->getMessage());
}
// Finally, we can retrieve all of the found rows into an array using fetchAll
$profilephotos = $stmt->fetchAll(PDO::FETCH_ASSOC);
无论我尝试什么 - 我都无法让 foreach 获取正确的图像。我已经设法提取了一个图像,但是 foreach 语句将相同的图像应用到每个用户,而不管我指示查询 $profilephotos 查找的 ID 是什么。
我做错了什么?我是否以正确的方式解决这个问题?
任何帮助将不胜感激 - 尽管我是 PHP 新手,但请注意。
【问题讨论】: