Php 基于多个选择的结果运行if语句
这可能需要一些非常基本的东西,但我找不到一个答案,以我想要的方式工作。我有一个mysql文章表和一个收藏夹表,如果你喜欢一篇文章,信息会被记录下来。所以我需要从一个表中选择我喜欢的所有文章,然后从另一个表中选择所有文章,并将它们全部显示为提要,我已经完成了这项工作。我需要帮助的部分是,如果我喜欢其中一篇文章,请不要显示like按钮(或者,如果我还不喜欢,请显示该按钮)。谁能用这个给我指一下正确的方向吗?下面是我的代码,但它只显示了我最喜欢的代码:Php 基于多个选择的结果运行if语句,php,mysql,select,social-media-like,Php,Mysql,Select,Social Media Like,这可能需要一些非常基本的东西,但我找不到一个答案,以我想要的方式工作。我有一个mysql文章表和一个收藏夹表,如果你喜欢一篇文章,信息会被记录下来。所以我需要从一个表中选择我喜欢的所有文章,然后从另一个表中选择所有文章,并将它们全部显示为提要,我已经完成了这项工作。我需要帮助的部分是,如果我喜欢其中一篇文章,请不要显示like按钮(或者,如果我还不喜欢,请显示该按钮)。谁能用这个给我指一下正确的方向吗?下面是我的代码,但它只显示了我最喜欢的代码: <?php $check_like_sql
<?php
$check_like_sql = "SELECT * FROM posts WHERE type = 'Like' && poster = '$yourid'";
$check_like_res = mysqli_query($con, $check_like_sql) or die (mysqli_error());
if(mysqli_affected_rows($con)>0){
while($likes = mysqli_fetch_array($check_like_res)){
$yourlike = $likes['media'];
}
}
?>
<?php
$get_posts_sql = "SELECT posts.*, members.username, members.avatar, fans.connection FROM posts LEFT JOIN members ON members.id = posts.poster LEFT JOIN fans ON fans.fan = '$yourid' WHERE posts.poster = fans.connection ORDER BY date DESC";
$get_posts_res = mysqli_query($con, $get_posts_sql) or die (mysqli_error());
if(mysqli_affected_rows($con)>0){
while($posts = mysqli_fetch_assoc($get_posts_res)){
$postid = $posts['id'];
etc
etc
if($yourlike == $postid){
$likethis = "<a href=\"php/unlike.php?poster=$yourid&post=$postid\">Unlike</a> . ";
}
else if($posttype == "Like"){
$likethis = "";
}
else{
$likethis = "<a href=\"php/like.php?poster=$yourid&lat=$yourlat&lon=$yourlon&like=$postid&user=$postusername\">Like</a> . ";
}
$post .= "";
}
}
?>
您可以将外部联接从文章表保留到喜欢的文章表
select a.*,
case when la.liked_article_id is null then 'Not Liked Yet' else 'Already Liked' as LikedStatus
from articles a
left outer join liked_articles la
on a.id = la.article_id
and @userId = la.user_id;
对于MYSQL,这可能在语法上不正确,但你已经明白了要点。你尝试过什么了吗?你能为问题添加代码吗?请发布你的
CREATE TABLE
语句和你已经尝试过的内容。很抱歉,这是用代码编辑。如果我们有你的数据库布局,这将更容易。