我有一个SQL查询,但我想确定如果有人没有上传头像(avatar_filename),它会显示另一个头像(/images/avatars/default.jpg)。
我一直在关注这个网站上是否存在条件并尝试使用它们而没有成功。
这是我目前的工作查询:
$query = "SELECT exp_forum_topics.last_post_author_id, exp_forum_topics.title, exp_forum_topics.topic_id, exp_forum_topics.last_post_date, exp_members.member_id, exp_members.screen_name, exp_members.avatar_filename ".
"FROM exp_forum_topics, exp_members ".
"WHERE exp_forum_topics.last_post_author_id = exp_members.member_id ".
"ORDER BY exp_forum_topics.last_post_date DESC ".
"LIMIT 4";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
echo '<img src="/images/avatars/';
echo $row['avatar_filename'];
echo '" />';
echo "<h3><a href='/forum/viewthread/";
echo $row['topic_id'];
echo "'>";
echo $row['title'];
echo "</a></h3>";
echo "<p>by <a href='/forum/members/";
echo $row['last_post_author_id'];
echo "'>";
echo $row['screen_name'];
echo "</a></p>";
}
答案 0 :(得分:1)
您是否考虑过使用默认值设置表格中的字段(列)?例如DEFAULT ='my-image.jpg'或类似的东西?
答案 1 :(得分:1)
在列数据库中定义默认值。
或者...
if (!isset($row['avatar_filename']) {
echo 'default_avatar.png';
} else {
echo $row['avatar_filename'];
}
答案 2 :(得分:0)
您可以在SQL
中处理此问题 选择列表中的,只需替换它:
exp_members.avatar_filename
有类似的东西:
COALESCE(NULLIF(exp_members.avatar_filename,''),'default.jpg')
AS avatar_filename
这相当于:
CASE WHEN exp_members.avatar_filename <> ''
THEN exp_members.avatar_filename
ELSE 'default.jpg'
END AS avatar_filename
这实际上模拟了默认值为'default.jpg'
的列,每当列为NULL
或等于空字符串''
时返回该值。
答案 3 :(得分:0)
您可以检查返回的值是否为空,并按如下方式设置默认图像:
if (!empty($row['avatar_filename'])) {
echo '<img src="/images/avatars/';
echo $row['avatar_filename'];
echo '" />';
} else {
echo '<img src="/images/avatars/default.jpg" />';
}