2016-12-25 66 views
-1

我有這個代碼,但在我看來它是太多的線。我剛剛進入編程領域,這就是爲什麼我有問題。 我認爲應該有一個更短的方式來使它沒有這個工作,如果其他循環,開關或它現在好嗎?避免(縮短)太多,如果PHP

如果$total==21然後mysql_query("UPDATE user SET left = '20'$total==20然後left=19並依此類推,直到$total=1left=0

if ($total==21) 
    { 
     mysql_query("UPDATE `user` SET `left` = '20' WHERE `user` = 'user1' ") or die(mysql_error()); 
    } 


else if ($total==20) 
    { 
     mysql_query("UPDATE `user` SET `left` = '19' WHERE `user` = 'user1' ") or die(mysql_error()); 
    } 

    .... 

else if ($total==1) 
    { 
     mysql_query("UPDATE `user` SET `left` = '0' WHERE `user` = 'user1' ") or die(mysql_error()); 
    } 


else { 

echo nl2br("0 left"); 

} 

聖誕快樂!

+3

是的,有一個更簡短的方法:你可以包含變量的更新。所以'$ total-1'就是你想寫入db的值。 – Jeff

+2

但請不要使用'mysql_ *'函數,因爲它們是舊的,不推薦使用,並在最新的php中刪除。 – Jeff

+1

這裏沒有必要使用'nl2br'函數,因爲內容中不包含任何'\ n'。 – Dekel

回答

0

,你應該使用,而不是過時的舊MySQL驅動PDO或mysqli的。這應該解決您的問題,現在:

$total = (int) $total; 
if ($total <= 0) { 
    echo '0 left'; 
} else { 
    $total--; 
    mysql_query("UPDATE `user` SET `left` = '$total' WHERE `user` = 'user1' ") or die(mysql_error()); 
} 

注意如何,我硬編碼的變量是一個整數,這樣它不會是令人尊敬的打針(事件它來自客戶端)。