2013-02-13 52 views
0

我想按表中的子表對我的SQL表排序。我想獲得的輸出是這樣的:按子表排序PHP

ItemHeader1 
-item1 
-item2 
-item3 
ItemHeader2 
-item4 
-item5 
ect. 

但是我得到的是:

ItemHeader1 
-item1 
-item1 
-item1 
ect. 

這裏是我的PHP代碼:

$index_content_enquirers = mysql_query("SELECT * FROM index_content_enquirers WHERE lang_attribute = '$lang_identify' ORDER BY item_sectionname_english ASC, item_english_title ASC") or die(mysql_error()); 
$get_index_content_enquirers = mysql_fetch_assoc($index_content_enquirers); 
$contentinfo = array(); 

foreach($get_index_content_enquirers as $row) { 
    $contentinfo[$get_index_content_enquirers['item_sectionname_english']][] = $get_index_content_enquirers['item_english_title']; 
} 

foreach($contentinfo as $contenttitle => $item_titles) { 
    echo $contenttitle; 
    foreach($item_titles as $item_title) { 
     echo "<br />". $item_title; 
    } 
} 

提前感謝!

+0

請閱讀有關在查詢中轉義字符串。你很可能設置自己的SQL注入攻擊。 http://www.php.net/manual/en/mysqli.real-escape-string.php – 2013-02-13 16:10:28

回答

0

首先 - 不要使用mysql函數,因爲它們已被棄用。使用mysqli或PDO。

在這個循環中:

foreach($get_index_content_enquirers as $row) { 
    $contentinfo[$get_index_content_enquirers['item_sectionname_english']][] = 
     $get_index_content_enquirers['item_english_title']; 
} 

您應該使用$row,而不是$get_index_content_enquirers。這將做的伎倆:)

foreach($get_index_content_enquirers as $row) { 
    $contentinfo[$row['item_sectionname_english']][] = 
     $row['item_english_title']; 
} 
+0

當我使用$行時,它給了我一個「警告:非法字符串偏移」錯誤? – nontoxicjon 2013-02-13 16:18:50