0

MySQL の結果を HTML に出力する際に​​問題があります。次を返すMySQLの結果がありました。

| title        | category_name | from_where |
---------------------------------------------
| Title num 1  | Journal       | iidl_file  |
---------------------------------------------
| Title num 2  | Books         | iidl_file  |
---------------------------------------------
| Title num 3  | Announcement  | iidl_post  |
---------------------------------------------
| Title num 4  | News          | iidl_post  |
---------------------------------------------

このデータを次のように HTML でプレビューするにはどうすればよいですか。

iidl_file
 - Title num 1 (Journal)
 - Title num 2 (Books)

--------------------------

iid_post
 - Title num 3 (Announcement)
 - Title num 4 (News)
4

2 に答える 2

0

これは私がすることです:

SELECT `title`, `category_name`, `etc` FROM `table_name` ORDER BY `from_where`;

多数のレコードがある場合、from_where列にインデックスがあることを確認すると大きなメリットがあります。

ここにいくつかの疑似コードがあります:

$groups = array();
foreach ($rows as $row) {
    $from_where = $row['from_where']
    if (! isset($groups[$from_where])) {
        $groups[$from_where] = array();
    }
    $groups[$from_where][] = $row;
}

これ$groupsで、列をキーとする配列が含まれfrom_whereます。

これを行うと、実際にはクエリで ORDER BY を発行する必要さえありません。

于 2012-08-08T03:56:28.400 に答える
0

単なるアイデアです。このようなコードで通常のmysql結果ループを使用してください。テストされていませんが、役立つことを願っています

$from_all = array();
$from_all[$from_where][] = array('title'=>$title,'category_name'=>$category_name)

それから

foreach($from_all as $from_where=>$array) {
    echo $from_where
    foreach($array as $row) {
        echo $row['title'];
        echo $row['category_name'];
    }
}
于 2012-08-08T03:56:48.723 に答える