当数组值为空或不存在时,不显示可用的下载

时间:2016-05-26 09:26:55

标签: php foreach

我正在尝试使用if else语句创建一个简单的pdf列表,其中pdf在存在pdf时显示为正常,如果没有,则需要显示:没有可用的下载。

现在它始终显示该消息,无论什么(没有pdf文件,以及有pdf文件时)。

我现在尝试了一切,没有任何工作。

当没有id存在或id为空时,它需要显示消息,但只有在根本没有pdf文件时才显示。

到目前为止我尝试了什么:

 <?
//pdf bestanden
$pdf                = "SELECT * FROM `snm_attachments` WHERE parent_id = '".$conn->real_escape_string($contentcr[0]['id'])."'";
$pdfcon             = $conn->query($pdf);
$pdfcr              = array();
while ($pdfcr[]     = $pdfcon->fetch_array());


foreach($pdfcr as $pdf){
    if(isset($pdf['id']) && !empty($pdf['id'])){ 
        $downloads .= '<li><a href="cms/attachments/article/'.$contentcr[0]['id'].'/'.$pdf['filename'].' "target="_blank"><i class="fa fa-file-pdf-o"></i>'.$pdf['filename'].'</a></li>';   
    }else{
        $downloads .= '<li>No available downloads</li>';
    }

    echo '<pre>'.print_r($pdfcr).'</pre>';
}

echo $downloads;
?>

我也试过这个:

<?
//pdf bestanden
$pdf                = "SELECT * FROM `snm_attachments` WHERE parent_id = '".$conn->real_escape_string($contentcr[0]['id'])."'";
$pdfcon             = $conn->query($pdf);
$pdfcr              = array();
while ($pdfcr[]     = $pdfcon->fetch_array());

if(count($pdfcr) > 0) {
  foreach($pdfcr as $pdf){
    if($pdf['id'] != ''){
        $downloads .= '<li><a href="cms/attachments/article/'.$contentcr[0]['id'].'/'.$pdf['filename'].' "target="_blank"><i class="fa fa-file-pdf-o"></i>'.$pdf['filename'].'</a></li>';   
    }
  }
}else{
    $downloads .= 'leeg';
}
echo $downloads;
?>

上面甚至没有显示消息,当没有pdf存在时它什么都不显示。当我在没有pdf的页面上回显PDF id时它没有显示任何内容,但它也没有显示没有可下载的消息。

我怎样才能做到这一点?它不是那么难,但是花了我几个小时来做​​这件事。

现在如何(即使有两个pdf,看看它是如何显示消息的):

enter image description here

正确行为:

enter image description here

这是print_r的输出($ pdfcr) https://kobra.io/#/e/-KIgRDOAz_Ki2PpOKTU5

1 个答案:

答案 0 :(得分:2)

您正在添加最后一次获取功能的空值。这是正确的方法:

$downloads = '';
while ($pdf= $pdfcon->fetch_array()) {
        $downloads .= '<li><a href="cms/attachments/article/'.$contentcr[0]['id'].'/'.$pdf['filename'].' "target="_blank"><i class="fa fa-file-pdf-o"></i>'.$pdf['filename'].'</a></li>';   
}

if ($downloads) echo $downloads; else echo 'No data';