通过子标题对PHP进行排序

时间:2013-02-13 16:04:13

标签: php sql sorting loops foreach

我正在尝试通过该表中的子标题对SQL表进行排序。我想要得到的输出是:

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;
    }
}

提前致谢!

1 个答案:

答案 0 :(得分: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'];
}