在CI中创建A-Z链接和分页结果操作

时间:2014-02-11 11:32:53

标签: mysql database codeigniter

我想创建A-Z的链接。这是我的分页。

例如,我有一个表的分页结果,所以我必须在A-Z的结果上面建立链接。如果我点击A.只会显示那些A为$position[0];的结果。

这只是我刚才制作的示例php代码。它不在Codeigniter上,因此链接是由html代码创建的。我将在后面的CI中实现的方式是,我将使用锚标记和每个链接的uri段来发送相应的字母,这些字母已经被选中。

无论如何,示例代码。

<?php

$string = "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";
$letter_array =  explode(' ',$string);
foreach($letter_array as $key=>$letter)
{
?>
<a href=""><?php echo $letter; ?></a>
<?php
}
$sample_results = "Airplane,Car,Truck";

$array_results = explode(',',$sample_results);

foreach($array_results as $key=>$val)
{
if($val[0] == "A")
{
echo $val;
}
}
?>

它可以工作,并打印结果。

  

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飞机

有没有更快的方法在codeigniter中声明一组A-Z字母?不知怎的,假设这是对的。 $array = array("A-Z","a-z");所以当我循环它时,它会打印字母A到Z / a到z。

最后,有没有办法通过过滤结果来操纵查询结果,只有第一个字母是用户选择的那些。就像CI中的where子句一样。我可以添加像where("name".[0],$letter_link)

这样的代码吗?

1 个答案:

答案 0 :(得分:1)

来自this forum

1)在codeigniter中声明一组A-Z字母。 php中有一个名为

的函数
range()

所以你的代码可以像这样

foreach(range('a', 'z')as $key=>$letter)

请参阅manual,它会为您提供您提供的范围内的数组。

2)此代码可以帮助您。

    <?php
  class Books_model extends Model {
    function Books_model() {
      parent::Model();
    }

    function get_list($char = FALSE) {
      $this->db->from('books');
      if($char !== FALSE) {
        $this->db->like('title', $char, 'after'); // here is the answer
      }
      $this->db->order_by('title', 'asc');
      $result = $this->db->get();
      if($result->num_rows() > 0) {
        return $result->result_array();
      } else {
        return array();
      }
    }
  }