PHP用默认图像替换空白图像

时间:2013-08-13 08:24:33

标签: php html

今天早上有一个大脑消退的时刻。我有以下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从输入框输入的空白​​条目。

为任何帮助干杯

7 个答案:

答案 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逻辑:)