Codeigniter / PHP: форматировать запрос базы данных как массив - PullRequest
4 голосов
/ 06 января 2011
    $this->db->select('id, user_id')->from('be_users')->where('id',$user_id);
    $data['user_individual'] = $this->db->get();

Если это мой запрос к БД, как мне получить массив из одной строки БД ...

есть. Я хочу сделать что-то вроде $data['user_individual']['id']->format_as_array ...

Ответы [ 4 ]

31 голосов
/ 06 января 2011

CodeIgniter предоставляет несколько методов для обработки результатов запроса.

Смотрите здесь: https://codeigniter.com/user_guide/database/results.html

result() возвращает массив объектов PHP.

row() возвращает один объект PHP для этой строки.

result_array() возвращает массив массивов.

row_array() возвращает один массив для этой строки.

row() и row_array() дополнительно принимают параметр, который является номером строки, которую вы хотите вернуть.

Помимо этого, трудно точно сказать, что вы просите. С помощью этих методов вы сможете получать данные в точности так, как вам нравится.

Редактировать

Кстати, доступ к этим методам осуществляется через объект запроса, возвращаемый из вызова $this->db->get():

$query = $this->db->get();

$rows = $query->result(); //array of objects
$rows_array = $query->result_array(); //array of arrays
$row = $query->row(); //single object
$row_array = $query->row_array(); //single array
1 голос
/ 06 января 2011

Когда вы используете $this->db->get();, вы можете использовать $this->db->result();, который возвращает объект массива.

$query = $this->db->get('table_name');

foreach ($query->result() as $row)
{
    echo $row->title;
}

См. http://codeigniter.com/user_guide/database/results.html для получения подробной информации о том, как получить наборы результатов из базы данных.

0 голосов
/ 26 октября 2013

/ ** * format_database_array * * Позволяет форматировать данные объекта базы данных в массив

  • @ access public
  • @ param String $ db_object: объект запроса к базе данных
  • @ return String: вернуть массив с данными * /

if (! Function_exists ('format_database_array')) {

    function format_database_array($db_object)
{
    $db_array = array();

    if($db_object-> num_rows >0)
    {
        foreach ($db_object->result_array() as $row)
        {
            foreach ($row as $key => $value)
            {
                $db_array[$key] = $value;
            }
        }
    }

    return $db_array;
}

}

0 голосов
/ 06 января 2011

Вместо $ this-> db-> get () используйте $ this-> db-> row_array ();

$this->db->select('id, user_id')->from('be_users')->where('id',$user_id);
$data['user_individual'] = $this->db->row_array();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...