0

私は自分の映画を含む mysql データベースを持っています

id | movietitle | year | imdbnumber

php sql クエリを使用して、映画をハイパーリンク リストとして表示したい

このような

<a href="http://www.imdb.com/title/ttIMDBNUMBER/" target="_blank">MOVIETITLE (YEAR)</a><br>

文字ごとに並べ替えてグループ化してほしい

例:

T
Titanic (1997)
THX 1138 (1971)

U
Underworld (2003)
...

どうすればphpでそれを行うことができますか?

4

2 に答える 2

0

を使用してSQLクエリ自体を使用してリストを並べ替えることができますORDER BY

DBからデータを取得したら、次のように各ハイパーリンクを作成できます。

<a href="http://www.imdb.com/title/tt<?=$imdbnumber?>/" target="_blank"><?=$movietitle?> <?=$year?></a><br>
于 2013-02-17T06:20:55.490 に答える
0

正規表現を使いたくない場合は、これが解決策の 1 つです。

<?php
$movie[0]='Amber';
$movie[1]='babar';
$movie[2]='Aviator';
$movie[3]='Caty boy';

function startsWith($haystack, $needle)
{
    return !strncmp($haystack, $needle, strlen($needle));
}

foreach (range('a', 'z') as $i){
    echo '<h1>'.strtoupper($i).'</h1>';
    foreach($movie as $key){
        if(startsWith(strtolower($key),$i)){
            echo '<li>'.$key.'</li>';
        }
    }
}


?>

上記の出力は次のようになります。

A
Amber
Aviator
B
Babar
C
Caty boy
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

もちろん、データベースから $movie 配列に ORDER BY SQL クエリを入力します。次に、$movie 配列はこの形式にすることができます

Title - (Year)

タイトルの後に何を付けても違いはありません - 年またはその他の詳細。条件は、文字列がタイトルで始まることです。SO フォーマットを見逃したとしても、例:

$movie[0]='Titanic';
$movie[1]='Hulk (2009)';

それでも、関数は問題ステートメントで説明した方法でソートする必要があります。それが役に立てば幸い。

于 2013-02-17T06:36:55.520 に答える