我正在使用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); ?>
道歉,如果这很糟糕,那是我的第一个动态网站。
答案 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
- 这是已弃用且非常不安全。您应该使用mysqli
或PDO
代替
答案 2 :(得分:1)
我最终找到了一个有效的解决方案:
if (!empty($image_iii)) { echo "<img src='../$image_iii' class='scale-image'>"; }
else { echo "";}
那就是说,显然你是善良的人,我是正确的,我需要交换到mysqli ...发现这个网站是migrating code to mysqli的一个很好的资源。感谢所有回复的人,每个人的评论都很有帮助。