我在一个电影档案管理系统上工作,我需要将查询结果分组到具有多个结果的案例中
例如,当用户搜索一个导演的名字(例如Steven)时,有Steven A,Steven B和Steven C的电影,(多个)我想做的是在他的名字下显示Steven A的所有电影,在他的名字下显示Steven B的所有电影,等等。
我如何使用php和mysql实现这一点?
谢谢
发布于 2012-03-24 03:25:55
使用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.
}发布于 2012-03-24 03:41:47
因为可能会有同名的人(有些人实际上改名了),所以根据董事的名字进行检查是有点愚蠢的。此外,我还假设您希望将信息存储在某种数据结构中,而不是仅在应用程序中的随机位置回显:
$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这当然是一个非常简单的例子。
https://stackoverflow.com/questions/9845311
复制相似问题