2011-05-23 145 views
0

我想從數據庫中獲取我的數據並用html標記包裝它。這裏是迄今爲止工作代碼:我怎麼能得到這些如果語句工作

function homethumb(){ $this->count; $i = 0; 
    while($row = mysqli_fetch_object($this->result)) 
    { 
     $this->count++; $i++; 
     if($i == 1){echo '<div class="gal1">';} 
     echo '<a href="portfolio.php?id=' . $row->id . '"> <div class="gal"><img src="img/' . $row->thumb2 . '.jpg"></div></a>'; 
     if($i == 2){ 
     echo '</div> <!-- gal1 -->'; 
     $i=0; 
     } 
    } 
} 

在這裏我從數據庫中(從投資組合選擇*)得到一切,但在投資組合中我有,網站,演示和圖形;所以我想只得到類別爲「網」從上面的代碼,所以我想這個數據:

function homethumb(){ $this->count; $i = 0; 
    while($row = mysqli_fetch_object($this->result)) 
    { 
     if($row->category = "web"){ 
       $this->count++; $i++; 
     if($i == 1){echo '<div class="gal1">';} 
     echo '<a href="portfolio.php?id=' . $row->id . '"> <div class="gal"><img src="img/' . $row->thumb2 . '.jpg"></div></a>'; 
     if($i == 2){ 
     echo '</div> <!-- gal1 -->'; 
     $i=0; 
     } 
     } 
    } 
} 

現在嵌套if語句不生成我需要的div,我怎麼能得到這個工作

感謝您的幫助

+0

輸入時是否過濾了你的'thumb2'以防止[跨站腳本缺陷](http://en.wikipedia.org/wiki/Cross-site_scripting)? – sarnold 2011-05-23 01:35:39

+0

@sarnold不會,我該怎麼做 – aurel 2011-05-23 02:35:55

回答

2

我不能看到基於你的問題你的SQL,但你可以只修改你的SELECT查詢到包括WHERE category="web"

這樣,你只選擇你行需要,而不是在該表格中每行循環播放

此外,您的if聲明似乎正在使用賦值=而不是比較==

+0

'='是一個錯字錯誤,而where過濾器是我真的不想在這種情況下做的事情,因爲它會與其他查詢衝突 – aurel 2011-05-23 01:47:39

+0

因此修復錯字糾正你的問題?或者在修改代碼後,你還沒有得到你想要的結果嗎? – 2011-05-23 01:58:52

+0

我修正了錯字,並將代碼更改爲「where category =」 – aurel 2011-05-23 03:13:10

2

你只需要有==而不是=

if($row->category == "web"){ 

但是,最好將查詢限制在數據庫級別所需的結果中,除非由於某種原因需要其他行。

1

1)你錯過了等號:

if($row->category = "web") =>if($row->category == "web")

或者更好的

if($row->category === "web")

2)如果你想只得到領域與特定category場,您可以簡單地更改您的查詢:

[rest of your query] WHERE category="web"

+0

我添加了他們,上面是一個錯字錯誤,但我仍然遇到同樣的問題,並且我對所有內容使用了一個Select查詢,會滿足這個問題,它會制動其他人 – aurel 2011-05-23 01:36:18

0

OK的話,應該是這樣,假設字段進行排序如下

ID,類別,網站的Thumb2,演示,圖形

function homethumb(){ $this->count; $i = 0; 
    while($row = mysqli_fetch_object($this->result)) 
    { 
     if($row[1] == "web"){ 
       $this->count++; $i++; 
     if($i == 1){echo '<div class="gal1">';} 
     echo '<a href="portfolio.php?id=' . $row[0] . '"> <div class="gal"><img src="img/' . $row[3] . '.jpg"></div></a>'; 
     if($i == 2){ 
     echo '</div> <!-- gal1 -->'; 
     $i=0; 
     } 
     } 
    } 
} 

而且不需要嵌套如果,你可以使用它在一個行,如下所示:

if($row[1] = "web") 
{ 
    echo '<div class="gal1">'; 
    echo '<a href="portfolio.php?id=' . $row[0] . '"> <div class="gal"><img src="img/' . $row[3] . '.jpg"></div></a>'; 
    echo '</div> <!-- gal1 -->'; 
} 
+0

我得到這個錯誤 - 不能使用stdClass類型的對象作爲數組 – aurel 2011-05-23 01:45:14

0

1)更改您的查詢包含一個類別爲「網絡」條款

2)當你需要一個相等運算符(==)時,你有一個賦值運算符(==)

相關問題