我正在这个网站上工作,我想要一个“添加到收藏夹”的按钮,如果你已经按下“添加到收藏夹”,它应该显示“从收藏夹删除”
它不会显示“添加到收藏夹”,但只显示“从收藏夹中移除”,如果它在SQL数据库中...
我认为这与我的“其他”代码有关。
这是我的代码:
$tbl_name="favorit";
$usrname=$_SESSION['UserIN'];
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name WHERE email='$usrname' AND type='drink'";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
$isadmin=$rows['typeid'];
if($isadmin===$idno){
echo '<a class="btn" href="../includes/sletfavoritdrink.php?drink='.$idno.'">Fjern fra favorit</a>';
} else {
echo '<a class="btn" href="../includes/favoritdrink.php?drink='.$idno.'">Tilføj til favorit</a>';
}}
提前致谢! : - )
答案 0 :(得分:1)
由于if()语句位于迭代结果集的while()循环内,因此当没有结果集迭代时,这两个条件都不会运行。因此,如果用户没有喜欢的饮料,那么查询将返回一个空结果集,而while循环永远不会运行一次迭代。
你基本上是这样做的:
foreach row in the set {
if condition then
branch 1
else
branch 2
}
但是集合中没有任何东西,所以if()永远不会运行。你可以这样做:
$result = mysql_query($sql);
if (mysql_num_rows($result)) {
// user has a favorite, show "remove" button
} else {
// user doesn't have a favorite, show "add" button
}
另请注意,不推荐使用mysql_ *函数。你应该使用mysqli或PDO。