Codeigniter: лучше выбрать db? - PullRequest
0 голосов
/ 16 января 2010

Это моя функция для получения данных из базы данных SQL ...

Есть ли более элегантный способ сделать это?

function getResults_1($id)
{
    $this->db->select(array("a_1","a_2"))->from('Survey');
    $this->db->where('user_id', $id);

    return $this->db->get();
}
function getResults_2($id)
{
    $this->db->select(array("a_6","a_8","a_13","a_14"))->from('Survey');
    $this->db->where('user_id', $id);

    return $this->db->get();
}
and so on... (to 5)...

Ответы [ 2 ]

2 голосов
/ 17 января 2010
function get_results($id, $method) {
    switch($method) {
        case 1: $select = array('a_1','a_2'); break;
        case 2: $select = array('a_6','a_8','a_13','a_14'); break;
        default: $select = false;
    }

    if($select) $this->db->select($select);
    $this->db->where('user_id',$id);

    return $this->db->get('Survey');
}
1 голос
/ 17 января 2010

Более оптимизированная (возможно, более запутанная для начинающих пользователей) версия результата @ Steven. Это предполагает, что вы не выходите за пределы со ссылкой на индекс массива, иначе это приведет к ошибке.

function get_results($id, $method) {
    $select_cols = array(1 => array('a_1','a_2'),
                         2 => array('a_6','a_8','a_13','a_14'));
    return $this->db->select($select_cols[$method])
                    ->where('user_id', $id)
                    ->get('Survey');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...