2012-08-29 60 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

其分配给从数据库中值,非常感谢您的帮助。我已经确定了我出错的地方,谢谢你的建议。代码现在正在工作。 –