-3

重複の可能性:
mysql_fetch_array() は、パラメーター 1 がリソースであると想定しており、select でブール値が指定されています

誰かが私を助けることができますか?アカウントの種類が「有料」のユーザーがログインしている場合にのみ表示されるように div を設定しています。

「有料」ユーザーが div ショーにログインしている場合は正常に動作しますが、ユーザーがログアウトしている場合は、このエラー メッセージが表示され、理由がわかりません。

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/PTB1/includes/mod_profile/mod_star_rating/mod_rating.php on line 116

コード:

<?php

$account_type = account_type();
while ($acctype = mysql_fetch_array($account_type)) 


 if ($acctype['account_type'] == 'paid')  {
     if (logged_in()) { ?>
    <div class="rate-button">can rate</div><?


 } 
 ?>

これが私のアカウントタイプ関数です:

function account_type() {
            global $connection;
            global $_SESSION;
            $query = "SELECT account_type
                        FROM ptb_users
                        WHERE id = ".$_SESSION['user_id']." ";
            $account_type = mysql_query($query, $connection);
            confirm_query($query, $connection);
            return $account_type;
        }
4

2 に答える 2

1
$acctype = mysql_fetch_array($account_type);

後に属する

 $account_type = mysql_query($query, $connection);

に続く

return $acctype;

メイン スクリプトは次のようになります。 $acc_type = account_type(); の代わりに

while
于 2012-12-19T16:17:22.820 に答える
0

まず、mysql_ 関数は非推奨であり、mysqli または PDO に置き換える必要があります。

$account_type は false である可能性があり、エラーを説明します。mysql_error() の結果を取得できるように、いくつかのチェックを追加する必要があります。

あなたは次のようなことをしたいと思うでしょう:

if(!$account_type) {
  die(mysql_error());
}
于 2012-12-19T16:16:33.117 に答える