2017-09-06 116 views
3

我有一個小問題,我不明白。注意:未定義偏移量: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 \庫\型號\ QuestionsManager.class.php上線89 89

線路是:

if($nombre[0] > 0) 

如果有人知道爲什麼這個問題發生?

在此先感謝!

+0

check odbc_num_rows。查詢返回多少行? – Gunaseelan

+1

這種方法可能被多次調用嗎? '$ demande'的價值是什麼?它保證是一個整數值嗎? –

+0

這不是一個錯誤,它只是一個顯示的消息。通知是表達你應該做什麼和不應該做什麼的信息。 –

回答

4

檢查按照PHP文件,odbc_fetch_array取結果行並返回它作爲關聯數組,或返回false如果沒有更多的行。

作爲聯想數組,第一項(COUNT(*))的索引不應該是[0]。說實話,我不知道爲什麼它顯然是。

我建議這樣的:第一別名計數在SQL,像

SELECT COUNT(*) AS rowcount ... 

然後引用該別名您獲取結果之後。

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

具體根據var_dump輸出:

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

其原因錯誤

注意:未定義偏移量:0在

是,它是一個string和你正在訪問作爲integer

它可以通過if與鍵彎腰,但我會建議使用PHP功能可按array_key_exists