分组SQL查询

时间:2012-03-23 19:23:20

标签: php mysql html

我正在制作电影档案管理系统, 我需要在具有多个结果的案例中对查询结果进行分组

例如,当用户搜索导演名称(例如Steven)时, 有Steven A,Steven B和Steven C的电影,(多个) 我想做的是以他的名字,史蒂芬B以他的名字等显示史蒂芬A的所有电影。

如何使用php和mysql

执行此操作

由于

2 个答案:

答案 0 :(得分:0)

使用ORDER BY director_name。这将导致具有相同名称的行一起列出。

您还可以使用PHP中的某些代码来检测导演名称更改时添加标题,如果您希望从一个导演更改为下一个导演更明显。

while (/* read row */)
{
    $director_name = ...; // Implement this.

    if ($previous_director_name !== $director_name) {
        echo ...; // Output director's name.
        $previous_director_name = $director_name;
    }

    echo ...; // Output row.
}

答案 1 :(得分:0)

由于可能有同名的人(有些人实际上更改了名称),因此根据董事姓名进行检查会有点愚蠢。另外,我假设您想将信息存储在某些数据结构中,而不是仅仅在应用程序中的随机位置回显:

$director_movies = array();

while ( /* can get new row */ )
{
    $id = $row['director_id'];
    if ( ! array_key_exists( $id, $director_movies ) )
    {
        $director_movies[ $id ] = array();
    }
    $director_movies[$id][] = $row['movie_title'];
}

// now $director_movies is a 2D array, containing movies for each director

这当然是一个极其简化的例子。