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?
3 answers
Сделайте эту строку
$eid = $entityid[0]['pdf_file'];
Выглядит так
$eid = isset($entityid[0]['pdf_file']) ? $entityid[0]['pdf_file'] : '';
Во-первых, убедитесь, что вы скопировали 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)) {
Вам нужно проверить ответ этого кода:
$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)