【问题标题】:hyperlink list from database columns来自数据库列的超链接列表
【发布时间】:2013-02-01 20:00:04
【问题描述】:

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

【问题讨论】:

标签: php html mysql hyperlink


【解决方案1】:

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

从数据库中获取数据后,您可以像这样创建每个超链接:

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

【讨论】:

    【解决方案2】:

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

    <?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)';
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-04
      • 2019-04-18
      • 2012-07-31
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多