Пользовательский массив вывода Codeigniter из запроса - PullRequest
1 голос
/ 17 февраля 2012

В моей модели есть функция для выбора элементов из базы данных и возврата их в виде массива.У меня вопрос, как я могу вручную создать массив, чтобы я мог, например, изменить формат даты?

Вот что у меня есть:

$sql = 'SELECT * FROM prayer_requests ORDER BY id DESC';
        $query = $this->db->query($sql);

        if($query->num_rows() > 0) return $query->result();
        else return FALSE;

Полагаю, мне понадобится какой-нибудь цикл?Я знаю, что это должно быть просто, но не могу понять, как именно это сделать.

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Если вы хотите получить результат в виде массива, вы можете использовать result_array() вместо result(). Подробнее о генерации результатов с помощью CodeIgniter вы можете прочитать здесь: http://codeigniter.com/user_guide/database/results.html

Ex:

$query = $this->db->query("YOUR QUERY");
$rows = $query->result_array(); // $rows is now an array containing all the rows from the query result

EDIT : Если вы хотите изменить данные, прежде чем помещать их в массив. Вам понадобится цикл, и, находясь в цикле, используйте любые функции, необходимые для изменения данных, которые вы хотите. Затем присвойте ей переменную цикла и добавьте ее в массив (который уже был инициализирован до цикла).

$rows = array();
foreach($query->result_array() as $row)
{
    $row['some_key'] = change_data($row['some_key');
    $rows[] = $row;
}
0 голосов
/ 25 апреля 2016

Перво-наперво: ваша модель вернет результат, контроллер выполнит эту работу, например:

//Picking data
$this->data['resultados']           = $this->outros_detalhes_model->consulta();
$rows = array();

//Running all data, modifying whatever you need
foreach($this->data['resultados'] as $row){
   $row->CT_TIPO = $this->funcoes->mostra_tipo_detalhe($row->CT_TIPO);
   $rows[] = $row;
}

//Sending data to view
$this->data['resultados'] = $rows;
$this->load->view('includes/estrutura',$this->data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...