数据库列的超链接列表

时间:2013-02-17 06:12:40

标签: php html mysql hyperlink

我有一部带有电影的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中做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以使用ORDER BY使用SQL查询本身对列表进行排序。

从数据库中获取数据后,您可以创建如下所示的每个超链接:

<a href="http://www.imdb.com/title/tt<?=$imdbnumber?>/" target="_blank"><?=$movietitle?> <?=$year?></a><br>

答案 1 :(得分:0)

如果您不想使用正则表达式,这是解决方案之一。

<?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

使用ORDER BY SQL查询填充数据库中的$ movie数组。然后$ movie数组可以采用这种格式

Title - (Year)

在标题 - 年份或任何其他细节之后,您所放置的内容不会有任何区别。条件是你的字符串应该以标题开头。即使您错过了格式,例如:

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

该函数仍应按照您在问题陈述中描述的方式对其进行排序。希望它有所帮助。