为什么我在php中收到错误消息“注意:未定义的索引:格式...”?

时间:2014-11-21 10:40:29

标签: php

当我运行我的PHP代码时,它会显示错误消息“Notice: Undefined index: formats in C:\xampp\htdocs\playit2\scripts\session.php on line 39”。

这是我的HTML代码。

$my_items = array();

$jsql_e = mysql_query("select request_list.id, request_list.formats, request_list.product_id, request_list.sent_on, request_list.return_on, products.name, products.certificate from request_list, products where request_list.email='$visit_email' and request_list.sent='1' and request_list.returned='1' and products.id=request_list.product_id") or die(mysql_error());

$jarr_rent_list_history = array();

while($jfet_e = mysql_fetch_assoc($jsql_e)){
    $jfet_e = array_filter($jfet_e);
    if(count($jfet_e) > 0){ array_push($jarr_rent_list_history, $jfet_e); }
}

foreach($jarr_rent_list_requested as $item_arr){
    if((count($item_arr) > 0) && (strlen($item_arr['product_id']) > 0)){
        array_push($my_items, $item_arr['product_id'], $item_arr['formats']);
    }
} 

错误在“if((count($item_arr) > 0) && (strlen($item_arr['product_id']) > 0)){”处给出,“格式”是id类型。

2 个答案:

答案 0 :(得分:1)

未定义的索引意味着完全它的内容。

$item_arr['formats']未定义。您应该在使用之前检查它是否正确。

可能根据您的具体情况而定。你能处理formats空吗?

$item_arr['formats'] = (isset($item_arr['formats']))?$item_arr['formats']:"";

答案 1 :(得分:1)

首先,您的问题不正确。如果您有Notice: Undefined index: formats in C:\xampp\htdocs\playit2\scripts\session.php on line 39错误。我的猜测是关于array_push($my_items, $item_arr['product_id'], $item_arr['formats'])行。

答案本身就是你得到的错误。数组formats中不存在键$item_arr

最好通过以下方式检查:

array_push($my_items, $item_arr['product_id'], ( isset($item_arr['formats']) ? $item_arr['formats'] : null)

这样格式值如果不存在,将设置为null