我在default_image列中的db中有一个默认图像集。如果default_image = 1,我希望它显示默认图像,如果default_image = 0,我希望文本说没有可用的图像。 如何确保仅显示默认图像。这是我现在正在做的事情,它只显示具有相同link_id的任何图像。
列media_link是图像的地址。
<?php if (!empty($row['default_image'])){
echo "<a href='http://localhost/images".$row['media_link']."'><img src='http://localhost/images".$row['media_link']."'/></a>";
}
else{
echo "<div align=\"center\">No image available</div>";
}?>
如何在数据库显示中使default_image为“1”而不做其他事情?感谢。
编辑:
这是另一段代码,用于显示该link_id的所有图像
if ($row['media_link']){
echo "<a href='http://localhost/t_images".$row['media_link']."'><img src='http://localhost/images".$row['media_link']."' /></a>";
}
else{
echo "<div align=\"center\">No images available</div>";
}
}
此电流ID有6张图像
当我在这个页面上回显vardump时,正确的图像有这个
string(1)“1”
而其他5张图片“非默认”
显示此字符串(1)“0”
我不确定如何在我的第一个代码中仅显示正确的默认图像。
这个信息有帮助吗?
再次编辑/修复:
我通过在我的查询结尾添加ORDER BY default_image DESC来修复它。不知道这是否是最好的事情,但如果有人有任何其他建议,我会很高兴听到他们。谢谢大家的帮助。你们都给出了很好的答案,但最后我只是将声明的顺序添加到我的查询中,它就是这样,所以我很高兴。
谢谢!
答案 0 :(得分:2)
在您的情况下,$row['default_image']
是一个字符串。当然,PHP不是强类型语言,但它仍然需要弄清楚你的意思。在您的示例中,您期望这样:
empty("0") === true
这不会发生。空字符串""
为空,数字0
为空,但字符串"0"
不为空。相反,你可以使用以下任何一种:
$row['default_image'] !== "0"
// Uses strict comparison, which might not be what you expect
0+$row['default_image'] != 0
// Uses casting, which might fail if the string doesn't contain a number
$row['default_image'] != "0" || !empty(0+$row['default_image'])
// Uses short-circuiting, and should cover all (most) cases
还有其他变种。我自己,我不确定我会在它们之间做出选择:这完全取决于你的意思。
答案 1 :(得分:1)
将Default_image检查为1而不是空。
试试:..
<?php
if( isset($row['default_image']) && $row['default_image'] == 1){
echo "<a href='http://localhost/images".$row['media_link']."'><img src='http://localhost/images".$row['media_link']."'/></a>";
}else{
echo "<div align=\"center\">No image available</div>";
}
?>
答案 2 :(得分:1)
试试这个......
<?php if (!empty($row['default_image']) && $row['default_image'] == 1){
echo "<a href='http://localhost/images".$row['media_link']."'>
<img src='http://localhost/images".$row['media_link']."'/></a>";
}
else{
echo "<div align=\"center\">No image available</div>";
}?>