使用查询结果在HTML表中生成链接。 (笨)

时间:2011-10-07 12:22:11

标签: php mysql codeigniter hyperlink html-table

我正在尝试在表视图中显示两列,一列是文档的标题,另一列是文档的描述。我在特定的表中有一个列,我选择名为“filename”,用于存储与其标题和描述相关联的上载文档的名称。

我很好奇我如何设法只显示标题和描述,同时将“filename”列中包含的数据设置为标题的超链接值? (基本上,我希望他们能够在点击它的名字后下载文件)

我非常肯定我可以通过跳过表格生成器并在视图中执行“foreach”手动将其打开,以打印出结果集中的所有数据,但我愿意接受建议,因为这样会使代码变得粗糙。以下是我的控制器的片段。

<?php
class blah extends CI_Controller { 
    public function troubleshooting() {
        $this->load->library('pagination');
        $this->load->library('table');

        $config['base_url'] = 'http://somewebsite.com/troubleshooting';
        $config['total_rows'] = $this->db->get('document')->num_rows();
        $config['per_page'] = 10;
        $config['num_links'] = 10;
        $this->pagination->initialize($config);
        $data['records'] = $this->db->get('document', $config['per_page'],$this->uri->segment(3));
        $this->db->select('doc_title, filename, description, category_id, product_id');
        $this->db->where('category_id = 1'); 
        $this->db->where('product_id = 1'); 
        $this->db->order_by('doc_title', 'asc');
        $this->load->view('blah/troubleshooting.php', $data);
    }
} 

1 个答案:

答案 0 :(得分:0)

您可以使用select->(CONCAT(...), FALSE)查询在查询中创建链接。

http://codeigniter.com/forums/viewthread/105687/#531878

**更新** 好吧,你的表助手将接收一个数组 - 你的db查询将返回一个数组。因此,您必须以一种方式创建查询,以便按照表助手的方式创建数组。

你需要这样的东西:

$records = [
    'doc_title' => 'My Title',
    'filename' => '<a href="path/to/filename.php">filename.php</a>',
    'description' => 'My description text here.',
    'category_id' => 5,
    'product_id' => 56
]

您的查询可能如下所示:

$this->db->select('doc_title');
$this->db->select('CONCAT("<a href=path/to/'.filename.'>".'filename'."</a>")', FALSE);
$this->db->select('description, category_id, product_id');
$this->db->where('category_id = 1'); 
$this->db->where('product_id = 1'); 
$this->db->order_by('doc_title', 'asc');

$records = $this->db->get('document', $config['per_page'],$this->uri->segment(3));

诀窍是你的CONCAT函数会有一些'引用'问题。如果没有亲自测试,我不确定我的报价是否合适。看看那里的一些文档,这应该有所帮助:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat