Php 预停车通知:未定义的偏移量:0

Php 预停车通知:未定义的偏移量:0,php,mysql,prestashop,prestashop-1.6,prestashop-1.5,Php,Mysql,Prestashop,Prestashop 1.6,Prestashop 1.5,我使用prestashop 1.5.6,我试着跟随 它可以工作,但在页面顶部也会出现24次错误: 注意:未定义的偏移量:0英寸 /home/deveskemhu/www/classes/Category.php,第3157行 我必须在最后一个括号之前添加以下内容: public static function getProductsImgSupp($product_id) { $sql = ' SELECT id_image, id_product from `

我使用prestashop 1.5.6,我试着跟随

它可以工作,但在页面顶部也会出现24次错误:

注意:未定义的偏移量:0英寸 /home/deveskemhu/www/classes/Category.php,第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行位于右括号之前

我能做些什么来修复它?

试试:

public static function getProductsImgSupp($product_id) {

$sql = '

SELECT id_image FROM `'._DB_PREFIX_.'image`

WHERE id_product="'.$product_id.'"

ORDER BY `position`';

$id_image = Db::getInstance()->getValue($sql);

return $product_id.'-'.$id_image;

}
关于

请尝试:

public static function getProductsImgSupp($product_id) {

$sql = '

SELECT id_image FROM `'._DB_PREFIX_.'image`

WHERE id_product="'.$product_id.'"

ORDER BY `position`';

$id_image = Db::getInstance()->getValue($sql);

return $product_id.'-'.$id_image;

}

这是因为并非每个
$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

}

这是因为并非每个
$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

}

您是否尝试过
print\r($result)
以查看它所保存的数据?我现在会。我现在有52行错误,而不是26行错误。是的,因为26行来自
return
和+26行来自
print\r()
使用它<代码>$result=Db::getInstance()->执行($sql);打印(结果);返回您是否尝试过
打印($result)
以查看它所保存的数据?我现在会。我现在有52行错误,而不是26行错误。是的,因为26行来自
返回
和+26行来自
打印()<代码>$result=Db::getInstance()->执行($sql);打印(结果);返回太棒了,我已经尝试过你的解决方案,即使我升级到PHP7.3.5,它也能像一个符咒一样工作
if(isset($result[0]){name=$result[0];}
Awesome,我已经尝试过你的解决方案,即使在升级到PHP7.3.5时,它也像一个魔咒一样工作
if(isset($result[0]){name=$result[0];}