我正在尝试显示来自我的成员的 15 张个人资料图片的列表。
有一个名为 的列settings
,看起来像0, 1, 1, 1
1
我必须只显示上面第一个数字为a 的人的图片。
由于我不能直接取人WHERE the first number
是 1,所以我必须取每个人,无论人数多少。然后,我将只显示拥有 1 组的人。(有什么方法可以在查询中解决问题吗?)
大约 20% 的成员有一个0
这个数字,所以在我的查询中,我必须设置一个LIMIT
高于 15 的值(我现在将其设置为 30,否则在 15 时我会得到一个少于 15 张图片的列表)。
但是,我必须在列表中准确显示 15 人,并且通常在 15-30 之间结束(因为 limit = 30)。
我尝试使用 for / while 循环,但我不确定在哪里放置它。
这是我的代码的样子:
$query = $conn->prepare("SELECT picture_path, profile_picture, username, last_visit, signup_date, settings FROM tusers
WHERE profile_picture IS NOT NULL
AND sex = 1
AND last_visit BETWEEN CURDATE() - INTERVAL 9 DAY AND CURDATE()
AND signup_date < CURDATE() - INTERVAL 10 DAY
ORDER BY RAND()
LIMIT 30");
$query->execute();
$members_results = $query->fetchAll(PDO::FETCH_ASSOC);
foreach ($members_results as $key => $member) {
$meet_new_people_enabled = explode(",", $member['settings']);
if ($meet_new_people_enabled[0] == '1') {
$picture_path = "http://www.mySite.com/" . $member['picture_path'] . "/" . $member['profile_picture'];
echo '<figure class="member"><a href="' . $member['username'] . '"><img src="' . $picture_path . '" title="' . $member['settings'] . '" width="100" height="100" /></a></figure>';
}
}
你将如何解决这个问题,这样正好显示了 15 个人?
谢谢