2012-12-13 2 views
0

"즐겨 찾기에 추가"버튼을 원하는이 웹 사이트에서 작업 중이며 "즐겨 찾기에 추가"를 이미 누르면 "즐겨 찾기에서 제거"가 표시됩니다.DB 입력에 따른 다른 버튼

"즐겨 찾기에 추가"를 표시하지는 않지만 SQL 데이터베이스에있는 경우 "즐겨 찾기에서 제거"만 표시됩니다.

"else"코드가 있다고 가정합니다.

여기이 내 코드입니다 :

$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

당신은 아마도 트리플 대신 여기에 두 개의 같음을 넣기를 원할 것입니다 :'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를 사용해야한다.

관련 문제