if php和html中的语句错误

时间:2016-07-09 03:40:28

标签: php html

content="0"

我有这个代码在like表中存在post id时更改like按钮上的图标图像但是当表中没有值时,else语句不起作用并且不显示图像。我试图添加'&& !== null'to if condition但它也不起作用。

2 个答案:

答案 0 :(得分:0)

在while循环上缺少右括号:

while($like_info = mysqli_fetch_assoc($like_result)){ 
  if($post_info['id'] == $like_info['post_id'])
      { echo ' src="img/like/like_active.png"';}
  else{echo ' src="img/like/like_dark.png"';}
}?>>

因为以下是常见的: SRC = “IMG /像/像”

你可以从if语句中删除它,只需在active和dark.png状态之间切换。

答案 1 :(得分:0)

如果用户的like表中没有数据,则while循环无需迭代。这意味着if条件永远不会被执行。

还值得注意另一个问题:看起来你的while循环会迭代所有帖子的所有结果。如果您的用户喜欢其他帖子(除了正在显示的帖子之外),那么您的else子句将被多次执行,为您提供src标记中的多个img属性(大部分或全部他们指的是like_dark.png)。

理想情况下,您需要做的是让您的数据库查询仅搜索用户对所显示帖子的ID的喜欢。这样你根本不需要while循环。您只需要检查是否找到了任何结果。如果是,请输出like_active.png,否则输出like_dark.png

如果您因某种原因无法修改查询(或者如果您想在页面上显示多个帖子时避免多次查询),则您的循环将需要遍历每条记录并只需设置一个布尔值变量为true,如果它看起来与当前帖子ID匹配。 while循环之后,检查if条件下的布尔变量,然后仅输出src属性。这样,无论您迭代了多少条记录,您都只会输出一个src属性。