关于Undefined index问题
大家好,我发现一个问题,$sql = 'SELECT id,type,year,month,daytime,week,hour,minute,vacancy FROM way WHERE id = (SELECT route_id FROM waypointid WHERE waypoint_id = '.$row["id"].')';
$query = $this->db->query($sql);
$row2 = $query->row_array();
$data['route_id'][] = $row2['id'];
$data['type'][] = $row2['type'];
的时候运行,就会报错
A PHP Error was encountered
Severity: Notice
Message: Undefined index: id
Filename: models/msearchcar.php
A PHP Error was encountered
Severity: Notice
Message: Undefined index: type
Filename: models/msearchcar.php
但是当我把代码改成
$row2 = $query->row_array();
$data['route_id'][] = isset($row2['id'])?$row2['id']:0;
$data['type'][] = isset($row2['type'])?$row2['type']:0;
时,就不报错了,仅仅是加了一个isset的判断,请问这里区别是在哪里?为什么会上升到error层面?还请大家教教我,php初学,谢谢大家 Notice错误是最基本的错误,在设置为“All”的时候就会显示。isset就是判断这个数组索引是否存在。
$query->row_array();返回的是一个这样的数组,不能直接像你那么用:
array(
array('一条数据集,包含id等字段'),
....
)
使用row_array()返回的数组需要foreach或者while来取得里面的每一条数据集,如果你要直接使用第一条,并且这条存在的话:
$row2 = $query->row_array();
echo $row2['id']; 由于你的数组里边本来是没有以id和type为建的数据的 $row2 = $query->row_array();
我print_r出$row2,它里面是有
id,type,year,month,daytime,week,hour,minute,vacancy这些关联的索引的,然后我直接用$row2['id'],
其实它是有值的,只是会报错,是因为php认为它不安全还是什么原因呢? 本帖最后由 风行天下 于 2012-2-20 18:16 编辑
风行天下 发表于 2012-2-20 18:10 static/image/common/back.gif
我print_r出$row2,它里面是有
id,type,year,month,daytime,week,hour,minute,vacancy这些关联的索引的,然 ...
<?php
$row2 = array('a'=>1);
echo $row2['a'];
?>
比如这段代码,这里的$row2也是一个数组,和查询出来的那个$row2数组是类似的,为什么测试运行的时候就正常呢?
而加了个isset(),也仅仅是判断一下,如果id是undefined,那么加不加isset()应该仍然会报错的,可是结果就正常了,
还请大家详细说说{:1_1:},谢谢大家 你print_r出来的贴出来看看,如果是:
array(array('id' => '123'), array('id' => '456'));
这样的数组,你不能直接用索引名来访问值。 本帖最后由 风行天下 于 2012-2-20 18:20 编辑
huboo82 发表于 2012-2-20 18:15 static/image/common/back.gif
你print_r出来的贴出来看看,如果是:
这样的数组,你不能直接用索引名来访问值。 ...
我打印了一下,是这样的
Array ( => 2 => 0 => 2012 => 2 => 0 => 3 => 0 => 11 => 11 )
array(array('id' => '123'), array('id' => '456'));
这个形式的应该是result_array();函数的结果
呃,我迷糊了…… 来把贴纸顶一下,来人啊{:soso_e102:}{:soso_e102:}{:soso_e102:}{:soso__11831903320155956023_1:}{:soso__7955921126269710814_2:}
页:
[1]