Ifuturz UploadPdf вызывает огромный системный журнал с уведомлением: Неопределенное смещение [закрыто]


В system.log у меня есть тысячи записей поговорка: ОШИБКА (3): Примечание: Неопределенное смещение: 0 в /home//public_html/приложение/дизайн/интерфейс/база/по умолчанию/шаблон/uploadpdf/uploadpdf.phtml в режиме онлайн 10

Итак, код таков:

<?php
$current_product = Mage::registry('current_product');
$productid = $current_product->getEntityId();

$write = Mage::getSingleton('core/resource')->getConnection('core_write');
            //echo "SELECT * from ifuturz_uploadpdf WHERE product_id='$pid'     ";
            $readresult=$write->query("SELECT * from ifuturz_uploadpdf WHERE product_id='$productid' ");
            $entityid = $readresult->fetchAll();
            //echo "<pre>";print_r($entityid);
            $eid =  $entityid[0]['pdf_file'];   <======= LINE:10
            if($eid!='')
            {
            ?>
                <div class="collateral-box">
                    <div class="head">
                            <h4><?php echo $this->__('PDF Downloads') ?>    </h4>
                    </div>
                </div>
                <?php

                for($i=0; $i<count($entityid) ;$i++)
                {
                    //echo     Mage::getBaseUrl('media')."pdffiles/uploadedfiles/".$entityid[$i]['pdf_path'];
                    $front = $entityid[$i]['pdf_file'];
                $pdfnm = $entityid[$i]['pdfname'];
                //$pdfnew = explode('/',$pdf);
                //$pdfexp = $pdfnew[8];
                //$pdffinal = str_replace('.pdf','',$pdfexp);

                if($pdfnm == "")
                {
                    $ext = explode(".", $front);
                    echo '<li style="font-family: verdana;margin-bottom: 15px;margin-left: 10px;"><a target="_blank" href="'.$entityid[$i]['pdf_path'].'">'.$ext[0].'</a><br /></li>';
                }
                else
                {
                    echo '<li style="font-family: verdana;margin-bottom: 15px;margin-left: 10px;"><a target="_blank" href="'.$entityid[$i]['pdf_path'].'">'.$pdfnm.'</a><br /></li>';
                }
            }
        }
        //echo "<pre>"; print_r($entityid);
        ?>

Я полагаю, что должно быть дополнительное утверждение if, которое улавливает исключение 0, верно? Но как это правильно сделать в php?

Author: van den HeuvelConcepts, 2017-02-08

3 answers

Сделайте эту строку

$eid =  $entityid[0]['pdf_file'];

Выглядит так

$eid =  isset($entityid[0]['pdf_file']) ? $entityid[0]['pdf_file'] : '';
 1
Author: Marius, 2017-02-08 09:41:18

Во-первых, убедитесь, что вы скопировали app/design/frontend/base/default/template/uploadpdf/uploadpdf.phtml в папку с темой, чтобы перезаписать ее.

Затем вам нужно взглянуть на то, что $entityid на самом деле возвращает. var_dump переменная в шаблоне.

Глядя на то, как он вызывается, он должен возвращать массив, где каждая запись имеет ключ ['pdf_file'] к другому массиву.

Чтобы проверить это в PHP, я бы, вероятно, посмотрел на две команды.

Во-первых, это массив? is_array - Я бы предположил, что это так, поскольку вы получаете неопределенное смещение, а не сообщение о манипулировании чем-то другим, кроме массива.

Во-вторых, существует ли смещение? array_key_exists, что-то вроде:

if (array_key_exists('0', $entityid)) {
 0
Author: Douglas Radburn, 2017-02-08 08:06:59

Вам нужно проверить ответ этого кода:

$readresult = $write->query("SELECT * from ifuturz_uploadpdf WHERE 'product_id='$productid' ");
 $entityid = $readresult->fetchAll();

            echo "<pre>";
print_r($entityid);

            $eid =  $entityid[0]['pdf_file'];

Проверьте ответ, имеет ли возвращаемый массив значение с индексом "0" или нет.

Для проверки этого условия вы можете использовать этот код:

array_key_exists('0', $entityid)
 0
Author: Akshay Verma, 2017-02-08 09:37:02