【问题标题】:A-z Index lisingA-z 索引列表
【发布时间】:2012-08-03 10:59:05
【问题描述】:

我的桌子是这样的

|A Bay of Blood|
|The Adventure|
|Blood River|
|Dooms Day|
|....|

我想显示 a-z 索引

A B C D E F...... Z

我只想提供可在表格中找到的字母的可点击链接

【问题讨论】:

  • 您什么都没问,只是要求提供“开箱即用”的解决方案。你有没有做过任何研究试图自己解决这个问题?

标签: php indexing


【解决方案1】:

这应该可行:

$abc = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
foreach ($abc as $v) {
    $ret = $db->query("SELECT COUNT (column) WHERE column LIKE '" .$v. "%'");
    $count = $ret->fetchColumn();
    if ($count == 0) 
        echo '<li>' .$v. '</li>';
    else
        echo '<li><a href="link.php">' .$v. '</a></li>';
}

【讨论】:

  • 您只需在 abc 数组中添加 0 到 9。 :)
【解决方案2】:

一个简单的方法是使用这样的查询:

"SELECT column1, column2 FROM yourtable WHERE title LIKE '$letter%'"

...其中 $letter 是 A、B 或 C 等...

【讨论】:

    【解决方案3】:

    创建一个数组,其中字母是键,值是true(可点击链接)或false(仅显示)。将所有值初始化为false

    $letters = array_fill_keys(range('A', 'Z'), false);
    

    遍历标题并将每个标题的第一个字母对应的值设置为true

    foreach ($titles as $title) {
        $letters[$title[0]] = true;
    }
    

    然后循环遍历结果并相应地显示链接或仅显示字母:

    foreach ($letters as $letter => $link) {
        if ($link) ...
        else ...
    }
    

    【讨论】:

    • 哇,我不敢相信你以目前的形式回答了这个问题。你今天显然处于慷慨和奉献的心情...... ;-)
    • @DaveRandom:是这样的,是的:)
    【解决方案4】:
    <a href="index.php?alphabet=a">A</a> | <a href="index.php?alphabet=b">B</a> ....
    
    $qry = "select <col_name> from <table_name> where <col_name> LIKE '".$_GET['alphabet']."%'";
    

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 2015-04-22
      • 2019-09-09
      • 1970-01-01
      相关资源
      最近更新 更多