2016-12-10 6 views
0

私は私のスクリプトで、次のエラーを得ました私はなぜ:私のデータベーステーブルは空ですが、それは私がそれを望む方法です、ユーザがサイト上で何かをするまでです。だから私の質問です:どのように私はこの行を別にコーディングすることができますので、テーブルが空でも続けるでしょうか?は非オブジェクトmysqliののプロパティを取得しようとする変数

15行目:

} elseif($radvent->sperretil > $time || mysqli_num_rows($queryvent) == 1) { 
    echo 'You have to wait '.$venter.' seconds'; 
} else { 

これは$radvent$queryventが割り当てられている方法です。

$queryvent = db_query("SELECT * FROM `sperrer` WHERE `brukerid`='$id' AND `sperre`='utpressing'") or die('Error 1: '.mysqli_error()); 
$radvent = mysqli_fetch_object($queryvent); 

私は任意の助けに感謝。

答えて

1

これを見てみましょう。

問題

  • ライン上........で非オブジェクトのプロパティを取得しようとするとエラー

    $radventがあることを意味しオブジェクトではありません。

  • つまり、は、NULLexplained in the docsと返されたためオブジェクトを返しませんでした。

  • なぜmysqli_fetch_object()が返されましたか?NULL?データセットに行がなかったためです。

  • なぜデータセットに行がありませんでしたか?あなたの質問であなたが認めたように、あなたのテーブルは空だったからです。

データセットが継続する前に空であるかどうかのソリューション

チェック。そのための一つの方法:

} elseif(!is_object($radvent)) { 
    // Oops! There's no data. Do something about that 
} elseif($radvent->sperretil > $time || mysqli_num_rows($queryvent) == 1){ 
    echo 'You have to wait '.$venter.' seconds'; 
} else { 

これはあなたの実際のコードに応じて、必ずしもそれを行うための最善の方法ではありませんが。それは単なる1つの選択肢です。

+0

答えていただきありがとうございます。私は '} elseif(!is_object($ radvent)){'を追加しようとしました。私は自分の何かを追加するつもりはない。それは、そこにすべてのデータが存在するかどうかだけチェックし、そうでなければcontiuneは、ユーザーに物事をさせる。私は自分のコードでユーザが行うことができるオプションを持っていなければなりません。そして、そこに私のクエリと$ radventが入ってきます。どのくらいまで、dbテーブルが空でないようには思えません。それは大きな問題です。簡単に言えば、dbが** sperrerでtabelを持っている場合、関数は終了します** – Xp0sed

+0

@ Xp0sed私はあなたのコメントを本当に理解していないのですか? 「それは助けになりませんでした」とはどういう意味ですか?何が起こった?そして、「私は自分自身に何かを加えるべきではないのですか? –

+0

@DawidFerenczy私は答えのその部分を削除しました。とにかくテストコードに誤りがありました。それは本当に始めるにあたって本当に厄介な点です。 –

関連する問題