php - 如何在php的echo语句中使用条件运算符
问题描述
我的数据库中有一个名为的表posts
。它由 7 列post_id
, user_id
, username
, posted_date
, posted_time
, am_or_pm
&组成likes
。我想在点赞按钮旁边显示没有点赞。如果喜欢的次数是 1,我想显示 1 个喜欢,如果超过 1,那么我想显示为n喜欢,其中 n 大于 1,这是我的 php 代码
$dbposts=DB::query('SELECT * FROM posts WHERE user_id=:user_id ORDER BY post_id DESC',array(':user_id'=>$user_id));
$posts="";
foreach($dbposts as $p){
$post_id=$p['post_id'];
$posts=htmlspecialchars($p['body']);
$posted_date=$p['posted_date'];
$posted_time=$p['posted_time'];
$am_or_pm=$p['am_or_pm'];
$likes=$p['likes'];
if(!DB::query('SELECT post_id FROM post_likes WHERE post_id=:post_id AND user_id=:user_id',array(':post_id'=>$post_id,':user_id'=>$friend_id))){
echo '<span id="user-name">'.$first_name.' '.$last_name.'</span> posted on <span id="posted-date">'.$posted_date.'</span> at <span id="posted-time">'.$posted_time.' '.$am_or_pm.' </span> <br> <span id="post">'.$posts.'</span>
<form method="post" action="Users_Profile.php?username='.$username.'&post_id='.
$post_id.'">
<button id="like-button" name="like_button" class="btn btn-primary" type="submit"> Like <i class="fas fa-thumbs-up"></i> </button> <span>'.$likes.' likes </span>
</form><hr>';
}
else{
echo '<span id="user-name">'.$first_name.' '.$last_name.'</span> posted on <span id="posted-date">'.$posted_date.'</span> at <span id="posted-time">'.$posted_time.' '.$am_or_pm.' </span> <br> <span id="post">'.$posts.'</span>
<form method="post" action="Users_Profile.php?username='.$username.'&post_id='.
$post_id.'">
<button id="unlike-button" name="unlike_button" class="btn btn-primary" type="submit"> Unlike <i class="fas fa-thumbs-down"></i> </button> <span>'.$likes.' likes </span>
</form><hr>';
}
}
这是显示问题的图像
我想显示 1 个喜欢和不喜欢。请帮忙
解决方案
在您的 foreach 循环中,您可以添加一个变量来计算“like”或“likes”值,$likes
如下所示:
// Using ternary expression
$likeOrLikes = $likes === 1 ? 'like' : 'likes';
然后在特定span
元素中,您可以这样做:
'/* ... */ <span>'.$likes.' '.$likeOrLikes.' </span> /* ... */'
在我结束我的答案之前,请注意上面的答案是为了与你的编码风格保持一致。您的代码有很大的优化空间和可读性,但这是另一天的问题。
推荐阅读
- c# - 如何索引 Jsonb 字段
- c++ - 我在哪里可以了解编译器和断言优化?
- python - 如何使用 Flask-Celery 应用程序向用户报告状态更新?
- python - 让上下文管理器在 Python 中的“上下文”中处于活动状态
- java - 多模块JavaFX maven项目打包问题
- r - 自动化用户定义的函数来处理数据帧
- office-js - OWA Outlook Web App - 在 Windows 客户端中创建系列时重复中断
- vb.net - 如何混合表单域和图形?
- python - 如何通过彻底运行每个元素对列表进行排序?
- python - 使用重复索引重塑 pandas 数据框,同时转置具有重复值的列