2014-08-28 78 views
0

当我在打印输出的顶部打印img表变量时,它工作正常,但是当它包含在if语句中时(如果没有图像,我不希望它打印一个空的图像标签),这似乎阻止他们的工作,因此它打印出一个空的图像标签,为什么会这样,以及如何解决这个问题?如果语句剥离变量链接

while ($row = mysql_fetch_row($result)) { 
    print '<div class="testimonial">'; 
    list ($id, $companyname, $testimonialcontent, $name, $imglink, $imgdes, $logo) = $row; 
    print "<p>$logo</p>\n"; 
    print "<p>$imglink</p>\n"; 
    print "<p>$imgdes</p>\n"; 
    if ($logo == TRUE) { 
    print "<img src='img/$imagelink' alt='$imagedes'>\n"; 
} 
    else { 
} 
    print "<h3>$companyname</h3>\n"; 
} 
?> 

在这里的时刻是相关的HTML被打印

<div class="testimonial"><p>1</p> 
<p>logo1.jpg</p> 
<p>image of starbucks logo</p> 
<img src='img/' alt=''> 
<h3>Sky Television</h3> 
+1

在您的查询中,您有WHERE img.logo = TRUE。不应该有没有图像的情况,因为你不会选择它们。 – Jestep 2014-08-28 15:09:55

+0

此表中还有其他图像,其中img.logo = TRUE允许我只选择徽标图像。 – 2014-08-28 15:15:10

+0

如果没有特定记录的图像,是否存储了任何值? – Jestep 2014-08-28 15:25:07

回答

1

我们没有看到任何被分配到$imagelink$imagedes变量。

看起来像那些变量正在计算它们被引用的上下文中的空(零长度)字符串(print语句)。

if条件是比较不同的变量,而不是print语句中引用的那两个变量的任一个。

我不相信if是“剥离链接到变量”;我认为问题在于你没有给这些变量分配任何东西。

+0

啊!这是因为我选择使用img和image,这是确切的问题,应该只使用一个。 – 2014-08-28 15:53:00

0

你有

if(condition) { 
    print image 
} else { 
} 

由于您else子句是空的,什么都不会得到印刷,如果状态结束这是错误的。

+1

谢谢,不过我的意图是,如果没有可用的图像显示,我希望图像标签消失,因此不会打印任何图像。当我使我的FULL OUTER JOIN正常工作时,这更具相关性,即使一边是空的,它也会从两个表中拉出记录。 – 2014-08-28 15:10:25

+0

然后你应该看看'$ logo'的值是什么。你正在做一个基本的'== true',如果$ logo包含任何非falsey值,它将会成功。 ''arglebargle'== true'会成功。 – 2014-08-28 15:15:56

+0

好的,但它是一个BOOLEAN,只有真或假? – 2014-08-28 15:18:40