2017-09-06 83 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