2012-12-13 95 views
0

我這個網站,我想爲「添加到收藏夾」,如果一個按鈕上工作,你已經按下「添加到收藏夾」它應顯示不同的按鈕

「從喜愛刪除」

它不會顯示「添加到收藏夾」,但只有「從收藏夾中刪除」,如果其在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

你在哪裏設置'$ idno'? – Sean

+0

你可能想要一個double equals而不是三元組:if($ isadmin == $ idno){' –

+0

$ idno在頂部:$ idno = $ _ GET ['id']; –

回答

1

由於您的if()語句位於遍歷結果集的while()循環內部,因此當沒有結果集迭代時,兩個條件都不會運行。所以,如果用戶沒有最喜歡的飲料,那麼查詢返回一個空的結果集,而while循環從不運行單個迭代。

你基本上這樣做:

foreach row in the set { 
    if condition then 
     branch 1 
    else 
     branch 2 
} 

但沒有什麼在集合,所以如果()從來沒有運行。你可以這樣做:

$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。