2013-12-09 70 views
-1

所以它一直是幾天,我仍然無法得到它的正常工作如果else語句不能正常工作

在網站上,我在代碼中得到這個:

<?php 
        include ('function.php'); 
         echo countUser('ko'); 
                ?> 

我使用這個函數來計算有多少'ko'。 如果有超過5個,那麼就應該說「有沒有留下任何可用空間」 但是,如果有2「KO」的話,我希望還能說什麼「有3位左」

因此,這裏是我的代碼:

<?php 

$con = mysql_connect("localhost","root"); 
mysql_select_db("cursussite"); 

function countUser ($cursus) 
{ 
    $sql = "SELECT COUNT(*) AS Totalcursus FROM cursisten WHERE cursus = '".$cursus."' "; 
    $query = mysql_query($sql) or die (mysql_error()); 
    $data = mysql_fetch_row($query) or die (mysql_error()); 

    if ($data > 5){ 

     echo "Alle plaatsen zijn bezet."; 


     } 

    else { 
     echo "Er zijn nog " .$data. " plaatsen beschikbaar"; 
    } 
} 


?> 

我執行的代碼,但我發現:全plaatsen zijn bezet。奇怪的 的事情是,我只有兩個記錄在數據庫中'ko'。

我在做什麼錯?

+2

'$ data'是一個陣列數組。 – PHPglue

回答

2

您正在計算錯誤的變量。 $data將保存獲取的當前行。相反,你應該使用這個:

$data = mysql_fetch_assoc($query) or die (mysql_error()); 
$count = $data['Totalcursus']; 

if ($count > 5) { 
    // ... 

而明顯的補充:mysql擴展名已被棄用。嘗試將您的代碼遷移到mysqliPDO

+0

'$ data'是循環遍歷每一行的方式,而不是獲得單個結果。 – PHPglue

+0

'$ data = mysql_fetch_row($ query);'不就是關聯數組中的單個行嗎?不是喜歡mysql自己的功能,我使用pdo。 –

+1

如果查詢以結果只有一行的方式對數據進行分組(這是「COUNT(*)」語句有效執行的操作),那麼結果是單一結果。簡單來說:作爲這個查詢的結果,不能再有一行。在程序'mysql' API中,這是從結果集中檢索任何數據的唯一方法。 –