0

誰かが私を助けてくれることを願っています。

私は PHP にまったく慣れていないので、SELECTクエリやIFステートメントがデータベースから結果を取得していないことに気付きました。

このコードの目的は、Web サイトのすべてのページに適用できる 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';
    }    
}

コードが実行されると、 echo が返されYou do not have a skin preferenceます。

私の考えでは、データベース/テーブルに正しく接続されていません。そのため、結果を取得していません。

$skin=='blue'データベースから取得する必要があることは事実です。

どんな助けや提案も大歓迎です。

ありがとう。

4

1 に答える 1

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
}
于 2012-08-29T04:22:35.697 に答える