我有一个非常简单的PHP函数,如果帖子保存在用户的书签中,它会检查数据库。如果它被保存为表格中的书签,那么它应该返回书签的链接,如果没有,则应该返回一个简单的按钮。
这是调用函数的代码:
echo bookmark($id,'stories');
这是PHP函数:
function bookmark($id,$column) {
global $db_conx;
if($column = 'stories') { $col = 'storid'; }
elseif($column = 'discussions') { $col = 'discid'; }
elseif($column = 'articles') { $col = 'articleid'; }
elseif($column = 'videos') { $col = 'videoid'; }
else $col = 'resid';
$result = mysqli_query($db_conx, "SELECT * FROM bookmarks WHERE '$col'='$id' AND username='$log_username' LIMIT 1");
$num_rows = mysqli_num_rows($result);
if ($num_rows > 0) {
return "<a class='rllink' title='Saved in your bookmarks' href='https://hangar.flights/bookmarks'><i class='fa fa-bookmark'></i></a>";
}
else return "<a class='rllink' href="xxxx" title='Save this in your bookmarks'><i class='fa fa-bookmark-o'></i></a>";
};
出于一些奇怪的原因,这似乎并不起作用,尽管我的其他类似功能确实有效。无论我到哪里调用这个函数(使用正确的参数),它都会返回else语句,即使特定的id保存在书签中也应该返回带有书签链接的第一个语句。
任何看到它有什么问题的人?我尝试过调整和更改但没有任何作用。
答案 0 :(得分:2)
您正在使用assign-in-if:
if($column = 'stories')
执行时,会发生这种情况:
这几乎可以肯定不你想要的东西,你可能想做比较 - 如果这些陈述没有改变你检查的东西的价值:
if($column == 'stories')
这将检查$ column当前是否等于字符串&#39;故事&#39;没有改变价值。