2012-08-29 56 views
0

我希望有人能幫助我。我的SQL選擇查詢和IF語句不會返回任何結果

我完全是PHP的新手,我發現我的SELECT查詢和/或IF語句沒有從我的數據庫中檢索任何結果。

此代碼的目的是從數據庫檢索一個css皮膚,可以應用到我的網站的每一頁。

下面是代碼:

$dbc - mysqli_connect($servername, $username, $password, $databasename) or die ('Error connecting to MYSQL server'); 

$skin = $_POST['skin']; 

$query = "SELECT skin FROM skins WHERE id = '".$_SESSION['userid']."'"; 

$result = mysqli_query($dbc, $query) or die ('Error quering database'); 

if ($result) {  
    if ($skin=='blue') {  
     echo "<link rel='stylesheet' type='text/css' href='blue.css' />"; 
    }  
    else if ($skin == "pink1") {     
     echo "<link rel='stylesheet' type='text/css' href='pink1.css' />";    
    } 
    else {  
     echo 'You do not have a skin preference'; 
    }  
} 

當代碼運行時,它回來呼應You do not have a skin preference

我的想法是,它沒有正確連接到數據庫/表;所以,它不會檢索任何結果。

我知道它應該從數據庫中選取$skin=='blue'

任何幫助或建議將不勝感激。

謝謝。

+0

你設置'$皮膚= $ _ POST [「皮膚」]' - 你不是在所有 – andrewsi

回答

1

mysqli_query()只會在出現錯誤時返回false,然後觸發您的or die()子句。

不返回數據的查詢是不是出錯。它仍然是一個有效的結果集,它恰好是空的。您需要檢查mysqli_num_rows()以查看是否返回0行或非零行。

例如。

if (mysqli_num_rows($result) == 0) { 
    ... there is no preference set 
} else { 
    ... there's at least one skin preference 
} 
+0

其分配給從數據庫中值,非常感謝您的幫助。我已經確定了我出錯的地方,謝謝你的建議。代碼現在正在工作。 –