2014-08-28 76 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