php - Prestashop通知: Undefined offset: 0

标签 php mysql prestashop prestashop-1.6 prestashop-1.5

我使用 prestashop 1.5.6,我尝试遵循 this tutorial .

它可以工作,但它也在页面顶部给我这个错误 24 次:

Notice: Undefined offset: 0 in /home/deveskemhu/www/classes/Category.php on line 3157

我必须在最后一个大括号之前添加这个:

   public static function getProductsImgSupp($product_id)

   {

    $sql = '

    SELECT id_image, id_product from `'._DB_PREFIX_.'image`

    WHERE id_product="'.$product_id.'"

    ORDER BY `position` ASC

    LIMIT 1,1

    ';

    $result = Db::getInstance()->ExecuteS($sql);

    return $result[0]['id_product'].'-'.$result[0]['id_image'];

    }

第 3157 行是上面代码中右大括号之前的行。

我可以做什么来修复它?

最佳答案

发生这种情况是因为并非每个 $result 都有索引 [0] - 意味着其为空

首先添加if语句行来检查它是否为空:

public static function getProductsImgSupp($product_id)

{

    $sql = '

    SELECT id_image, id_product from `'._DB_PREFIX_.'image`

    WHERE id_product="'.$product_id.'"

    ORDER BY `position` ASC

    LIMIT 1,1

    ';

    $result = Db::getInstance()->ExecuteS($sql);

    if(isset($result[0])){

        return $result[0]['id_product'].'-'.$result[0]['id_image'];

    }

    // Here you could put an else in case it's empty

}

关于php - Prestashop通知: Undefined offset: 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43761413/

相关文章:

php - Laravel - 如果值包含某个字符串(从搜索输入中获取),则查询模型

mysql - 即使使用 bodyParser,req.body 也会给出空对象 {}

mysql - 在mysql中模拟正则表达式捕获组

mysql - 管道分隔与单独的行

mysql - 将整个文本替换为文本字符串 SQL 的一部分

php - 具有不同 ID 的多个动态表单的 AJAX 查询

php - MySql PHP 选择 JSON 值

php - 覆盖文件夹功能和冲突?

php - 如何使用 RedBeanPHP 显示表中的所有记录?

mysql - SQL:从带有变量的表中选择