Генерация ссылок в таблице HTML с использованием результатов запроса.(Codeigniter) - PullRequest
0 голосов
/ 07 октября 2011

Я пытаюсь отобразить два столбца в моем табличном представлении, один из которых является названием документа, а другой - описанием документа.У меня есть столбец в конкретной таблице, который я выбираю с именем «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 голосов
/ 07 октября 2011

Вы можете создать ссылку в своем запросе с помощью запроса select->(CONCAT(...), FALSE).

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

** ОБНОВЛЕНИЕ ** Итак, ваш помощник таблицы получит массив -и ваш запрос БД собирается вернуть массив.Итак, вы должны создать свой запрос так, чтобы он создавал ваш массив так, как вам нужно для помощника таблицы.

Вам нужно что-то вроде этого:

$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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...