今天早上有一个大脑消退的时刻。我有以下php:
$imgset = $result->fields[6];
if ($imgset = '')
{
$imgset = 'logo';
}
else
{
$imgset = $result->fields[6];
}
echo '<img id="imgdisp" src="/img/'.$imgset.'.jpg" />';
$imgset = '';
在哪里查看数据库中的结果是否为空白,如果是,则应放入logo.jpg而不是结果。出于某种原因,它只是不想工作,我可能完全失明,但不明白为什么不。我仍然在HTML和文件名“/img/.jpg”中得到空白图片,好像$ imgset仍在传递空白。 SQL中的值也不是NULL,它们绝对是在其他地方使用_POST从输入框输入的空白条目。
为任何帮助干杯
本
答案 0 :(得分:6)
此:
if ($imgset = '') {
始终将$imgset
设置为空。改为使用比较:
if ($imgset == '') {
因为在这种情况下$imgset
已设置为$result->fields[6];
,所以也不需要您的其他内容。
答案 1 :(得分:2)
尝试验证图片中是否还存在图片
<?php
$imgset = $result->fields[6];
if ($imgset) {
$imgset = $result->fields[6];
$path ='pathtoimages';
if(!file_exists($path.'/'.$imageset.'.jpg'){
$imgset = 'logo';
}
}
else
{
$imgset = 'logo';
}
echo '<img id="imgdisp" src="/img/'.$imgset.'.jpg" />';
?>
答案 2 :(得分:1)
您忘记在if条件上进行比较,而是为$ imgset分配一个空值。 if ($imgset = '')
应为if ($imgset == '')
答案 3 :(得分:1)
$imgset = $result->fields[6];
if ($imgset == '')
{
$imgset = 'logo';
}
echo '<img id="imgdisp" src="/img/'.$imgset.'.jpg" />';
$imgset = '';
您不需要else部分,因为该值已在第一个语句中分配。
答案 4 :(得分:0)
使用三元运算符可以这样做:
echo '<img id="imgdisp" src="/img/'.(empty($imgset)?'logo':$imgset).'.jpg" />';
以可读性为代价缩短代码。
答案 5 :(得分:0)
这就是为什么最好扭转这种情况:
if ('' = $imgset)
会导致错误。
答案:
if ('' == $imgset)
//or
if (empty($imgset))
答案 6 :(得分:0)
如果您从MYSQL中选择,则可以使用类似
的内容SELECT *,COALESCE(image,"logo") AS image FROM ....
这样当结果返回并且某些行具有NULL图像时,它将被“logo”替换,因此您不需要PHP中的IF逻辑:)