2011-11-29 24 views
1

我有一個表設置了一個標題爲has_sub的列,其中包含tinyint值爲1或0,具體取決於子類別是否具有其他級別。 1 =有另一個等級,0 =沒有其他等級。如何根據字段中的1或0得到不同的結果?

我遇到的問題是,我似乎無法讓我的錨點的HREF以取決於has_sub字段更改(請參見下面的代碼)

$dbc = mysql_connect($db_host,$db_user,$db_pass); 
$sdb = mysql_select_db($db_database); 

$category = mysql_real_escape_string($_GET['category']); 

$query = "SELECT subcategory_name, has_sub FROM subcategories WHERE subcategory_parent = '$category'"; 
$result = mysql_query($query, $dbc) 
or die (mysql_error($dbc)); 

while($row = mysql_fetch_array($result)) { 

$subcatname = $row["subcategory_name"]; 
$hassub = $row["has_sub"]; 

if($hassub=='1') 
echo "<li><a href='getsubsubs.php?category=$subcatname'>$subcatname</a></li>"; 

else 
echo "<li><a href='listings.php?category=$subcatname'>$subcatname</a></li>"; 

} 

我作爲一個初學者,有機會,我我錯過了一些非常基本的東西,但似乎無法弄清楚。我一直在瀏覽文檔無濟於事。提前謝謝了。

結果的print_r($行):(從OP評論)

Array ( 
    [0] => Alarm Systems 
    [subcategory_name] => Alarm Systems 
    [1] => 0 
    [has_sub] => 0 
) 
Array ( 
    [0] => Building Interiors and Services 
    [subcategory_name] => Building Interiors and Services 
    [1] => 1 
    [has_sub] => 1 
) 
+1

你現在得到了什麼樣的輸出?(例如,只有指向listing.php的錨點,還是錨點根本不顯示?)分析問題始終是答案的最快方法。 ;) – Qqwy

+0

@Qqwy只顯示指向listing.php的錨點。 –

+0

'echo $ hassub;'給出了什麼? – Toto

回答

0

一切是正確的,以便檢查數據庫中的錯誤輸入。

0

它不應該是if($hassub == 1),而不是if($hassub=='1')

+0

沒什麼區別恐怕只是謝謝你的輸入:0) –

0

您在if-else語句中有一些小錯誤。你有正確的想法,只有幾個字符需要改變,因爲你已經安排了它的格式,導致它被識別爲不是。另一件事會讓所有事情變得更加有組織,就是如果你將if-else語句中的所有內容都打包成一個變量,而不是僅僅將它回顯出來。

相反的:

if($hassub=='1') 
echo "<li><a href='getsubsubs.php?category=$subcatname'>$subcatname</a></li>"; 

else 
echo "<li><a href='listings.php?category=$subcatname'>$subcatname</a></li>"; 

使用這樣的:

if ($hassub == "1") { 
$hassub_toggle = '<li><a href="getsubsubs.php?category=' . $subcatname . '">' . $subcatname . '</a></li>'; 
} 

else { 
$hassub_toggle = '<li><a href="listings.php?category=' . $subcatname . '">' . $subcatname . '</a></li>'; 
} 

現在,無論你把

<?php echo $hassub_toggle; ?> 

你會得到你的結果。我個人喜歡用這種方式將東西放入變量中,因爲它使事情變得非常有條理,它使您能夠在將它回顯到頁面之前將更多東西應用於回報。

相關問題