当变量不存在时隐藏内容

时间:2016-09-03 06:52:31

标签: php mysql database

我正在使用php从我的mysql数据库发布新闻文章。文章在其文本中放置了图像。图像存储为变量,每个变量都有自己的路径。问题是我并不总是使用每篇文章的完整图像,以及我写的方式,显示损坏的图像。

简而言之,如果特定ID不存在'$ image_ii'或'$ image_iii',我如何防止显示损坏的图像。

我写出来的方式如下:

            <?php    
            include ('connect.php');               

            $friendly_url=$_GET['friendly_url'];
            $query = "SELECT * FROM entries WHERE friendly_url='$friendly_url'";
            $entries = mysql_query($query);


            while($row = mysql_fetch_array($entries, MYSQL_ASSOC))
            {
              $title = $row['title'];
              $author = $row['author'];
              $pub_date = $row['pub_date'];
              $content_i = $row['content_i'];
              $content_ii = $row['content_ii'];
              $content_iii = $row['content_iii'];
              $content_iv = $row['content_iv'];
              $image_i = $row['image_i'];
              $image_ii = $row['image_ii'];
              $image_iii = $row['image_iii'];
              $image_caption_i = $row['image_caption_i'];
              $image_caption_ii = $row['image_caption_ii'];
              $image_caption_iii = $row['image_caption_iii'];
              $pre_link = $row['pre_link'];
              $post_link = $row ['post-link'];
              $id = $row['id'];
              $friendly_url = $row['friendly_url'];
              $american_date = date("F d, Y", strtotime($pub_date));
              $friendly_content_i = nl2br($content_i);
              $friendly_content_ii = nl2br($content_ii);
              $friendly_content_iii = nl2br($content_iii);
              $friendly_content_iv = nl2br($content_iv);



              echo "
            <div id='post'>
                <div id='post-title'>$title</div>
                <div id='post-content'

                $friendly_content_i        

                <div id='media'> <img src='../$image_i' class='scale-image'>   </div>
                <div id='media-caption'> $image_caption_i </div>

                $friendly_content_ii  

                <div id='media'> <img src='../$image_ii' class='scale-image'>   </div>
                <div id='media-caption'> $image_caption_ii </div>

                $friendly_content_iii

                <div id='media'> <img src='../$image_iii' class='scale-image'>   </div>
                <div id='media-caption'> $image_caption_iii </div>

                $friendly_content_iv

            </div>

                <div id='post-footer'>  by $author <br> $american_date </div>


                </div>
            </div> ";

            } mysql_close($connection); ?>

道歉,如果这很糟糕,那是我的第一个动态网站。

3 个答案:

答案 0 :(得分:1)

尝试使用以下代码段

if (file_exists("../".$image_iii)) {
    echo "<img src='../$image_iii' class='scale-image'>";
} else {
    echo "<img src='../default-image' class='scale-image'>";
}

答案 1 :(得分:1)

您已告诉我们您问题的解决方案:

  

如果特定ID不存在'$ image_ii'或'$ image_iii'。

使用if file_exists()检查您的图片是否存在,如果不存在则不输出。

此外,我发现您正在使用mysql_query - 这是已弃用且非常不安全。您应该使用mysqliPDO代替

答案 2 :(得分:1)

我最终找到了一个有效的解决方案:

                 if (!empty($image_iii)) { echo "<img src='../$image_iii' class='scale-image'>"; }
                                    else { echo "";}

那就是说,显然你是善良的人,我是正确的,我需要交换到mysqli ...发现这个网站是migrating code to mysqli的一个很好的资源。感谢所有回复的人,每个人的评论都很有帮助。