PHP列表问题(未定义的偏移量:)

时间:2012-03-28 01:36:03

标签: php list

原始SQL查询是这样的; SELECT id,post_title,post_date FROM wp_posts,其中id ='1'

当我检索记录时,我发现了它,但是当它返回结果时,我很困惑。这是我被卡住的地方。

   while ($row = mysql_fetch_assoc($RS)) :
      print_r ($row); 
      list($id,$post_title,$post_date) = $row;
   endwhile;

print_r($ row)输出这个;     数组([ID] => 1 [post_title] => Hello world![post_date] => 2012-03-27 03:28:27)

当我在那里运行list函数时(显然是出于调试目的),我得到了这个;

Notice: Undefined offset: 2 in F:\inetpub\wwwroot\whatever\sql.php on line 147
Notice: Undefined offset: 1 in F:\inetpub\wwwroot\whatever\sql.php on line 147
Notice: Undefined offset: 0 in F:\inetpub\wwwroot\whatever\sql.php on line 147

造成这种情况的原因是什么?

5 个答案:

答案 0 :(得分:5)

替换:

mysql_fetch_assoc($RS)

使用:

mysql_fetch_array($RS, MYSQL_NUM)

然后它应该工作,因为list函数尝试使用数字键访问数组。

答案 1 :(得分:4)

我想答案就在于此;

list()仅适用于数值数组,并假设数字索引从0开始。

:(

答案 2 :(得分:1)

您使用了mysql_fetch_assoc,因此每行生成的数组在按键名称的键下有数据,而“list”尝试使用数值数组索引将变量与值匹配。您可以使用mysql_fetch_array。

答案 3 :(得分:1)

您也可以在这里使用extract(); (documentation here。)

答案 4 :(得分:0)

$ categ = val1 | val2的

列表($之一,$二,$为三个)= @分裂( '[|]',$ CATEG);

如果您尝试列出不可用的值,则会返回错误Undefined Offset。

此处错误将是Undefined Offset 2.

因为在拆分$ categ时,它只有两个值,如果你尝试访问第三个值,那么它将返回错误。