2017-09-06 6 views
3

少し問題がありますが、わかりません。Notice:未定義オフセット:0 - 配列に値が含まれています

私はこのコードを持っている:

public function formAlreadySent($demande){ 
     $data = odbc_exec($this->dbConnection,"SELECT COUNT(*) FROM [@JDC_QSTR] WHERE U_Demande = ".$demande); 
     $nombre = odbc_fetch_array($data); 
     print_r($nombre); 
     if($nombre[0] > 0) 
      return true; 
     else 
      return false; 
    } 

print_rの結果は次のとおりです。

配列([0] => 0)

しかし、私はこのエラーを得ました:

注意:未定義のオフセット:0 Cで:\ WAMP \ WWW \ enquetesatisfactionはLIBS \モデル\ QuestionsManager.class.phpはライン上で89

ライン89は、\:この問題が起こる理由

if($nombre[0] > 0) 

は、誰かが知っていれば?

ありがとうございます! var_dump出力あたりとして

+0

check odbc_num_rows。クエリが返す行の数 – Gunaseelan

+1

このメソッドは複数回呼び出される可能性はありますか? '$ demande'の価値は何ですか?それは整数値であることが保証されていますか? –

+0

これはエラーではなく、表示されているメッセージです。通知とは、何をすべきか、何をすべきではないかを伝えるメッセージです。 –

答えて

4

funciton PHPを使用して確認することをお勧めそれ以上存在する場合、odbc_fetch_arrayは、結果行をフェッチせず、連想配列として返す、またはfalse返します行。

アソシエート配列の場合、最初の項目のインデックス(COUNT(*))は[0]であってはなりません。正直言って、私はなぜそれが明らかにわからない。

私はこれを示唆している:最初に、あなたのSQLのカウント別名

SELECT COUNT(*) AS rowcount ... 

のように、あなたは結果を取得した後、そのエイリアスを参照します。

if($nombre['rowcount'] > 0) ... 
1

array (size=1) '0' => string '0' (length=1) 

エラーの原因

お知らせ:オフセット未定義:0

には、それが stringであり、あなたがアクセスしているということですとして integer

これはキーとifを使用して前かがみすることができるが、私はPHPのドキュメントによればarray_key_exists

関連する問題