2011-01-13 2 views
0

У меня есть проблема с массивом, который становится возвращенным из запроса я бег,помощи с соответствующими ключами массива перезаписи друг друг

$jobs = array(
    array('id'=>2,'salary'=>27000,'benefits'=>'false','benefits_description'=>'','skills'=>'PHP mysql javascript','job_summary'=>'Developing stuff','job_description'=>'Developing stuff','tags'=>'PHP, mysql, web development, web, leeds','created_at'=>1294871124,'updated_at'=>0,'job_titles_id'=>1,'locations_id'=>1,'employers_id'=>4,'id'=>1,'jobtitle'=>'Website Developer','id'=>1,'location'=>'Leeds') 
); 

Я хотел использовать первый идентификатор в моей ссылке я в здании, однако вместо 2 он возвращает 1, поскольку я предполагаю, что первый идентификатор становится перезаписанным идентификатором позже в массиве? Есть ли способ, чтобы остановить это происходит, я не могу изменить схему базы данных на данном этапе проекта, запрос, который получает это из базы данных выглядит следующим образом,

$this->db->select('*') 
     ->from('jobs') 
     ->join('job_titles', 'job_titles.id = jobs.job_titles_id', 'left') 
     ->join('locations', 'locations.id = jobs.locations_id', 'left') 
     ->where('jobs.employers_id', $employer_id); 

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

     return $query->result_array(); 

ответ

1

Вам нужны псевдоним поля, которую вы возвращение из базы данных.

Вы не указали, какие RDBMS вы используете, но, скорее всего, это MySQL, поэтому вместо использования SELECT * (что является ленивой и плохой практикой, если честно), вы должны указать поля, которые вы специально требуете, и можете использовать псевдоним второе поле ID, используя что-то вида:

SELECT ... <table name>.<field name> AS id_2 ... FROM ... 

Вот соответствующий MySQL manual page для получения дополнительной информации.

Смежные вопросы