Как я могу встроить повторяющиеся данные в один объект JSONPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как я могу встроить повторяющиеся данные в один объект JSON

Сообщение Anonymous »

Как мне встроить приведенные ниже данные в формате JSON таким образом, чтобы я мог получить только один объект JSON для каждого зала.

Как вы можете видеть, у меня есть данные из двух таблиц, одна из «hall_information», которая не повторяется в таблице, потому что имя_холла, идентификатор_провайдера_услуги и идентификатор будут введены пользователем один раз.

Но во второй таблице «hall_price», в которой у меня есть slot_name, slot_ending_time, slot_starting_time, Hall_type, которые повторяются, как пользователь может описать свой цена за зал на утро, вечер и полный день, а также за зал_тип мини, мантап и банкет. поэтому эти строки могут повторяться 9 раз для каждого зала с 3 Hall_types и для каждого Hall_type 3 цен.

Поэтому я хочу объединить только одну строку в качестве результата запроса в формате json. Я использую php с Codeigniter и angular.js для своего проекта. как встроить этот результат запроса в один объект json. так что при зацикливании с использованием ng-repeat я могу получить только один зал, а не 9 залов с одинаковым именем. Заранее спасибо.

var hallinfo =
[
{
"hall_name":"Sai mantap","id":"12","service_provider_id":"35",
"slot_name":"morning","slot_charge":"5000","slot_starting_time":"09:00:00","slot_ending_time":"03:00:00",
"hall_info_id":"45","hall_type":"mantap"
},

{
"hall_name":"Sai mantap","id":"12","service_provider_id":"35",
"slot_name":"evening", "slot_charge":"10000","slot_starting_time":"05:00:00","slot_ending_time":"10:00:00",
"hall_info_id":"45","hall_type":"mini"
},

{
"hall_name":"Sai mantap","id":"12","service_provider_id":"35",
"slot_name":"full_day","slot_charge":"15000","slot_starting_time":"09:00:00","slot_ending_time":"10:00:00",
"hall_info_id":"45","hall_type":"bunquet"
},

{
"hall_name":"Raman mantap ","id":"13","service_provider_id":"36",
"slot_name":"morning","slot_charge":"5000","slot_starting_time":"09:00:00","slot_ending_time":"03:00:00",
"hall_info_id":"46","hall_type":"mantap"
},

{
"hall_name":"Raman mantap","id":"13","service_provider_id":"36",
"slot_name":"evening", "slot_charge":"10000","slot_starting_time":"05:00:00","slot_ending_time":"10:00:00",
"hall_info_id":"46","hall_type":"mini"
},
{
"hall_name":"Raman mantap","id":"13","service_provider_id":"36",
"slot_name":"full_day","slot_charge":"25000","slot_starting_time":"09:00:00","slot_ending_time":"10:00:00",
"hall_info_id":"46","hall_type":"bunquet"
},

];


вот схемы таблиц.

CREATE TABLE hall_information (
id integer NOT NULL,
hall_name character varying(30),
service_provider_id REFERENCES service_provider(id);
);

CREATE TABLE hall_pricing (
id integer NOT NULL,
slot_name slot_type NOT NULL,
slot_charge integer NOT NULL,
slot_starting_time time without time zone NOT NULL,
slot_ending_time time without time zone NOT NULL,
hall_info_id integer REFERENCES hall_information(id),
hall_type character varying(20)
);


и мой запрос на получение всех записей:

public function get_hall_info(){
$this->db->select('*');
$this->db->from('hall_info');
$this->db->join('hall_pricing', 'hall_info.id = hall_pricing.hall_info_id');
$query =$this->db->get();
return $query->result();
}


Думаю, это сработает, но у меня нет идеи конвертировать мои данные в приведенную ниже форму.

var hallinfo =
[
{
"hall_name":"Sai mantap","id":"12","service_provider_id":"35",
"slots":[
{
"slot_name":"morning","slot_charge":"5000","slot_starting_time":"09:00:00","slot_ending_time":"03:00:00",
"hall_info_id":"45","hall_type":"mantap"
},
{
"slot_name":"evening", "slot_charge":"10000","slot_starting_time":"05:00:00","slot_ending_time":"10:00:00",
"hall_info_id":"45","hall_type":"mini"
},
{
"slot_name":"full_day","slot_charge":"15000","slot_starting_time":"09:00:00","slot_ending_time":"10:00:00",
"hall_info_id":"45","hall_type":"bunquet"
}
]
},
{
"hall_name":"Raman mantap ","id":"13","service_provider_id":"36",
"slots":[
{
"slot_name":"morning","slot_charge":"5000","slot_starting_time":"09:00:00","slot_ending_time":"03:00:00",
"hall_info_id":"46","hall_type":"mantap"
},
{
"slot_name":"evening", "slot_charge":"10000","slot_starting_time":"05:00:00","slot_ending_time":"10:00:00",
"hall_info_id":"46","hall_type":"mini"
},
{
"slot_name":"full_day","slot_charge":"25000","slot_starting_time":"09:00:00","slot_ending_time":"10:00:00",
"hall_info_id":"46","hall_type":"bunquet"
}
]
}
];


Подробнее здесь: https://stackoverflow.com/questions/239 ... son-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»