2012-12-06 42 views
0

我在迴應從數據庫中覆蓋的區域列表。該列表有標題,並從數據庫中獲取子標題,從循環中創建結果,超文本url

$area_shire = ''; 
$area_district = ''; 
$area_name = ''; 

while($rows = mysql_fetch_array($query)): 

    if($rows['area_shire'] != $area_shire) { 

     echo '<h1>'.$rows['area_shire'].'</h1>'; 
     $area_shire = $rows['area_shire']; 
    } 

    /* same for district using h2 and name using h3 */ 

endwhile; 

我現在想使每個結果的超文本鏈接,所以我增加了

$area_shire_url = str_replace(' ', '_', $area_shire); 
$area_district_url = str_replace(' ', '_', $area_district); 
$area_name_url = str_replace(' ', '_', $area_name); 

和更改每呼應

echo '<a href=\"Tree_Surgery_'.$area_shire_url.'.php\"><h2>'.$rows['area_shire'].'<br></h2>'; 
$area_shire = $rows['area_shire'];} 

    /* same for district using h2 and name using h3 */ 

這一直沒有奏效?

回答

1

你行我會重寫剪斷爲:

$area_shire = ''; 
$area_district = ''; 
$area_name = ''; 

while($rows = mysql_fetch_assoc($query)) { 
    if ($rows['area_shire'] != $area_shire) { 
     $area_shire = $rows['area_shire']; 
     $area_shire_url = 'Tree_Surgery_'.str_replace(' ', '_', $area_shire).'.php'; 
     echo '<h2><a href="'.$area_shire_url.'">'.$area_shire.'</a></h2><br>'; 
    } 

    // same for district using h2 and name using h3 
} 

你的錯誤似乎已被你躲過了"而在單引號的字符串。當使用'時,php將按原樣回顯所有包含的字符;不需要轉義。

請注意,我還使用mysql_fetch_assoc代替mysql_fetch_array和重新安排你的HTML標籤,以避免嵌套block-level elementsinline elements

我還選擇將完整的url存儲在一個變量中,而不僅僅是其中的一部分,並將它結合到echo語句中以整個url。在我看來,這更易於閱讀。特別是當你想稍後編輯東西時。

+0

+1這是更好的,不能真的寫在我的iPad! :-) –

+0

非常好,真的很感激,現在要花3個小時的時間來研究爲什麼這個方法有效,但肯定有大聲笑。非常感謝 – user1880357

+0

祝你好運,找出爲什麼例子工作是學習如何編程的最佳方法。 – Jacco

1

'<a href=\"Tr

,因爲你不使用"來定義你的PHP語句,我不認爲你需要躲避"

0

由於文本不在雙引號內,因此不需要轉義雙引號。您的代碼末尾似乎還有一個},除非這不是全部代碼,否則這不是必需的。

我還沒有看到這樣的格式或while循環,嘗試將其更改爲這樣:

while($rows = mysql_fetch_array($query)){ 
    // do stuff 
} 

更重要的是,你還沒有結束你的a標籤。結束與</a>