【问题标题】:My SQL Select Query and IF statement will not return any resultsMysql Select Query 和 IF 语句不会返回任何结果
【发布时间】:2012-08-23 15:26:15
【问题描述】:

我希望有人可以帮助我。

我对 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'

任何帮助或建议将不胜感激。

谢谢。

【问题讨论】:

  • 您正在设置 $skin= $_POST['skin'] - 您根本没有将其分配给数据库中的值

标签: php css select if-statement mysqli


【解决方案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
}

【讨论】:

  • 非常感谢您的帮助。感谢您的建议,我已经确定了哪里出错了。代码现在可以工作了。
猜你喜欢
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
相关资源
最近更新 更多