Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于DB条目的不同按钮_Php_Mysql_Sql_If Statement - Fatal编程技术网

Php 基于DB条目的不同按钮

Php 基于DB条目的不同按钮,php,mysql,sql,if-statement,Php,Mysql,Sql,If Statement,我在这个网站上工作,我想为“添加到收藏夹”按钮,如果你已经按下“添加到收藏夹”,它应该显示“从收藏夹删除” 它不会显示“添加到收藏夹”,但仅显示“从收藏夹中删除”,如果它在SQL db中 我猜是我的“其他”代码 以下是我的代码: $tbl_name="favorit"; $usrname=$_SESSION['UserIN']; mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_sel

我在这个网站上工作,我想为“添加到收藏夹”按钮,如果你已经按下“添加到收藏夹”,它应该显示“从收藏夹删除”

它不会显示“添加到收藏夹”,但仅显示“从收藏夹中删除”,如果它在SQL db中

我猜是我的“其他”代码

以下是我的代码:

$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>';

}}
$tbl_name=“favorit”;
$usrname=$\u会话['UserIN'];
mysql_connect(“$host”、“$username”、“$password”)或die(“无法连接”);
mysql_select_db($db_name)或die(“无法选择db”);
$sql=“从$tbl\u name中选择*,其中email='$usrname'和type='drink';
$result=mysql\u查询($sql);
while($rows=mysql\u fetch\u array($result)){
$isadmin=$rows['typeid'];
如果($isadmin===$idno){
回声';
}否则{
回声';
}}
提前感谢!:-)

由于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。

您在哪里设置了
$idno
?如果($isadmin==$idno){$idno在顶部:$idno=$\u GET['id']您是否回显了
$isadmin
&
$idno
以确保它们匹配?是的,它们确实匹配,唯一的问题是当数据库中没有记录时,它不会显示链接“Tilføj til favorit”,但是如果我运行脚本将饮料添加到我的收藏夹中,它会显示“Fjern fra favorit”