Insert data with insert_batch - mysql

I'm using the following statement to insert data in mysql with codeigniter.
$this->db->insert_batch($table, $query);
$query is generated dynamically can have different number of columns on each array element
and maybe the number of elements may differ on condition
array (
0 => array(
'column1'=>'insert1',
'column2'=>'insert2'
),
1 => array(
'column1'=>'insert1';
'column2'=>'insert2',
'column4'=>'insert4'
)
)
could this cause an error or handles codigniter from deafult?
I'm building up the query as it follows
foreach ($sql_xml as $children) {
$children = $this->xml2array($children);
foreach ($children as $index => $child) {
if ($child != 'feed_id') {
$keys[$index] = $child;
}
}
}
switch (strtolower($this->config[0]->affiliate)) {
case 'case1':
$target_xml = $target_xml->productItems;
break;
case 'case2':
$target_xml = $target_xml;
break;
default :
break;
}
$query = array();
$data = array();
foreach ($target_xml as $feeds) {
$feeds = $this->xml2array($feeds);
$columns = new RecursiveIteratorIterator(new RecursiveArrayIterator($feeds));
foreach ($columns as $index => $column) {
if (array_key_exists($index, $keys)) {
if($column != ''){
$data[$keys[$index]] = $column;
$data['feed_id'] = $this->id;
}
//*TODO //$data['affiliate'] = "'.$this->config[0]->affiliate.'";
}
}
$query[] = $data;
}
if (count($query > 0)) {
foreach ($query as $t){
$this->db->insert($table, $t);
}
}

The array's would need to have the same amount of "columns".
So what I would recommend is the following (setting certain columns to null if no there is no data):
array (
0 => array(
'column1' => 'insert1',
'column2' => 'insert2',
'column3' => null,
'column4' => null
),
1 => array(
'column1' => 'insert1',
'column2' => 'insert2',
'column3' => 'insert3',
'column4' => 'insert4'
)
)
Also, your syntax is invalid and it would cause an error since you are using a ; instead of an , on the first column insert.

Related

Can't Insert an array in table column, Laravel

I need to insert an array in a table column with other non array inputs, But each time it's inserting a string "Array" ,
My codes are :
$post_data['product_category'] = "Goods";
$post_data['product_profile'] = "physical-goods";
for ($i = 1; $i < count($request->package_type_id); $i++) {
$answers[] = [
$post_data['package_type_id'] =$request->package_type_id,
];
}
$update_product = DB::table('orders')
->where('transaction_id', $post_data['tran_id'])
->updateOrInsert([
'name' => $post_data['cus_name'],
'email' => $post_data['cus_email'],
'phone' => $post_data['cus_phone'],
'amount' => $post_data['total_amount'],
'status' => 'Pending',
'address' => $post_data['cus_add1'],
'transaction_id' => $post_data['tran_id'],
'currency' => $post_data['currency'],
'package_type_id' => implode($answers,',')
]);
You have gone a long way, I think you just want to make a string from the $request->package_type_id which I assume is an array.
$post_data['product_category'] = "Goods";
$post_data['product_profile'] = "physical-goods";
$post_data['package_type_id'] = implode(',', $request->package_type_id);
$update_product = DB::table('orders')
->where('transaction_id', $post_data['tran_id'])
->updateOrInsert([
// ...
'package_type_id' => $post_data['package_type_id']
]);
Also note that the syntax for implode is implode(glue, array) not the other way around.

Trying to get property 'parameter' of non-object

Hello i have an api in Laravel i'm trying to get a value from a table column
Json response it already in the table json response but when i get it its says:
Trying to get property 'parameter' of non-object
i'm so new on laravel so i'm really lost with this
The Function i use when i call the api
it go to
$parameter = $value->parameter;
And then stop and say in PriceDetailHolder():
Trying to get property 'parameter' of non-object
I showed 2 functions because i don't really know where is the problem exactly
public static function PriceDetailHolder($booking_prices, $booking_id = null, $currency = null): array
{
if (!empty($booking_id) && $booking_id !== null) {
/**
* #var $booking Booking
*/
$booking = Booking::query()->find($booking_id);
$currency = $booking->CountryArea->Country->isoCode;
}
$holder[] = [
'highlighted_text' => trans('admin.message665'),
'highlighted_text_color' => '333333',
'highlighted_style' => 'BOLD',
'highlighted_visibility' => true,
'small_text' => 'eee',
'small_text_color' => '333333',
'small_text_style' => '',
'small_text_visibility' => false,
'value_text' => trans('admin.message665'),
'value_text_color' => '333333',
'value_text_style' => '',
'value_textvisibility' => false
];
foreach ($booking_prices as $key => $value) {
$code = '';
if (!empty($value->code)) {
$code = "({$value->code})";
}
$parameter = $value->parameter;
/**
* #var $parameterDetails PricingParameter
*/
$parameterDetails = PricingParameter::query()->find($parameter);
if ($parameterDetails === null) {
$prameterName = $parameter;
} else {
if ((int)$parameterDetails->parameterType === 13) {
$applicable = (int)$parameterDetails->applicable === 1 ? trans('api.message174') : trans('api.message175');
/**
* #var $priceCardValue PriceCardValue
*/
$priceCardValue = PriceCardValue::query()->where([['price_card_id', '=', $value->price_card_id], ['pricing_parameter_id', '=', $parameter]])->first();
$code = "($priceCardValue->parameter_price %)\n" . $applicable;
}
$prameterName = $parameterDetails->ParameterApplication . $code;
}
$holder[] = [
'highlighted_text' => $prameterName,
'highlighted_text_color' => '333333',
'highlighted_style' => 'NORMAL',
'highlighted_visibility' => true,
'small_text' => 'eee',
'small_texot_clor' => '333333',
'small_text_style' => '',
'small_text_visibility' => false,
'value_text' => $currency . ' ' . $value->amount,
'value_text_color' => '333333',
'value_text_style' => '',
'value_textvisibility' => true
];
}
return $holder;
}
public function End(EndTripRequest $request)
{
$merchant_id = $request->user('api-driver')->merchant_id;
$validator = Validator::make($request->all(), [
'booking_id' => [
'required',
'integer',
Rule::exists('bookings', 'id')->where(static function ($query) {
$query->where('booking_status', TripStatus::STARTED);
}),
],
'latitude' => 'required',
'longitude' => 'required',
'tip_amount' => 'nullable|numeric',
]);
if ($validator->fails()) {
$errors = $validator->messages()->all();
return response()->json(['result' => '0', 'message' => $errors[0], 'data' => []]);
}
/**
* #var $configuration BookingConfiguration
*/
$configuration = BookingConfiguration::query()->where('merchant_id', $merchant_id)->first();
$booking_id = $request->booking_id;
/**
* #var $booking Booking
*/
$booking = Booking::with('PriceCard')->find($booking_id);
/**
* #var $bookingDetails BookingDetail
*/
$bookingDetails = BookingDetail::booking($booking_id)->first();
$service_type_id = (int)$booking->service_type_id;
if (!in_array($service_type_id, [1, 5], false)) {
$start_meter_value = $bookingDetails->start_meter_value;
$customMessages = [
'gt' => trans_choice('api.endmeter', 3, ['value' => $start_meter_value]),
];
$validator = Validator::make($request->all(), [
'send_meter_image' => 'required',
'send_meter_value' => 'required|integer|gt:' . $start_meter_value,
], $customMessages);
if ($validator->fails()) {
$errors = $validator->messages()->all();
return response()->json(['result' => '0', 'message' => $errors[0], 'data' => []]);
}
}
$request->user('api-driver')->free_busy = 2;
$request->user('api-driver')->total_trips += 1;
$request->user('api-driver')->save();
/**
* #var $user \App\User
*/
$user = $booking->User;
++$user->total_trips;
$user->save();
if ($request->hasFile('send_meter_image')) {
$bookingDetails->end_meter_value = $request->send_meter_value;
$request->file('send_meter_image');
$send_meter_image = $request->send_meter_image->store('service');
$bookingDetails->end_meter_image = $send_meter_image;
}
$pricing_type = $booking->PriceCard->pricing_type;
$price_card_id = $booking->price_card_id;
$key = $configuration->google_key;
$endAddress = GoogleController::GoogleLocation($request->latitude, $request->longitude, $key);
$endAddress = $endAddress ?: 'Address Not found';
$endTimeStamp = time();
$bookingDetails->end_timestamp = $endTimeStamp;
$bookingDetails->end_latitude = $request->latitude;
$bookingDetails->end_longitude = $request->longitude;
$bookingDetails->end_location = $endAddress;
$bookingDetails->accuracy_at_end = $request->accuracy;
$bookingDetails->save();
$start_timestamp = $bookingDetails->start_timestamp;
$seconds = $endTimeStamp - $start_timestamp;
$hours = floor($seconds / 3600);
$mins = floor($seconds / 60 % 60);
//$secs = floor($seconds % 60);
$timeFormat = sprintf('%02d H %02d M', $hours, $mins);
$rideTime = round(abs($endTimeStamp - $start_timestamp) / 60, 2);
$from = $bookingDetails->start_latitude . ',' . $bookingDetails->start_longitude;
$to = $request->latitude . ',' . $request->longitude;
$coordinates = '';
$bookingData = new BookingDataController();
$bookingData->ActivateRefer($booking->id);
/**
* Calculate the distance based on service type.
*/
switch ($service_type_id) {
case '1':
$bookingcoordinates = BookingCoordinate::query()->where('booking_id', $request->booking_id)->first();
$pick = $booking->pickup_latitude . ',' . $booking->pickup_longitude;
$drop = $booking->drop_latitude . ',' . $booking->drop_longitude;
$distanceCalculation = new DistanceCalculation();
$distance = $distanceCalculation->distance($from, $to, $pick, $drop, $bookingcoordinates['coordinates'], $merchant_id, $key);
$distance = round($distance);
$coordinates = $bookingcoordinates['coordinates'];
break;
case '5':
$distance = GoogleController::GoogleShortestPathDistance($from, $to, $key);
$distance = round($distance);
break;
default:
$distance = $bookingDetails->end_meter_value - $bookingDetails->start_meter_value;
$distance *= 1000;
}
/**
* Calculate Trip Amount based on Pricing Type
*/
switch ($pricing_type) {
case '1':
case '2':
$newArray = PriceController::CalculateBill($price_card_id, $distance, $rideTime, $booking_id, $bookingDetails->wait_time, (double)$bookingDetails->dead_milage_distance, (double)$booking->User->outstanding_amount);
/**
* Check if trip went through a toll gate
*/
if (!empty($configuration->toll_api)) {
$newTool = new Toll();
$toolPrice = $newTool->checkToll($configuration->toll_api, $from, $to, $coordinates, $configuration->toll_key);
if (is_array($toolPrice) && array_key_exists('cost', $toolPrice) && $toolPrice['cost'] > 0) {
$parameter[] = ['price_card_id' => $price_card_id, 'booking_id' => $booking_id, 'parameter' => 'TollCharges', 'amount' => sprintf('%0.2f', $toolPrice['cost']), 'type' => 'CREDIT', 'code' => ''];
$newArray[] = $parameter;
}
}
$newExtraCharge = new ExtraCharges();
$carditnewArray = array_filter($newArray, static function ($e) {
return ($e['type'] === 'CREDIT');
});
$amount = array_sum(Arr::pluck($carditnewArray, 'amount'));
if ($booking->number_of_rider > 1) {
$amount += $booking->PriceCard->extra_sheet_charge;
}
$booking_time = (int)$booking->booking_type === BookingType::RIDE_NOW ? $booking->created_at->toTimeString() : $booking->later_booking_time;
$timeCharge = $newExtraCharge->NightChargeEstimate($price_card_id, $booking_id, $amount, $booking_time);
if (!empty($timeCharge)) {
$charge = array_sum(Arr::pluck($timeCharge, 'amount'));
$amount += $charge;
$newArray = array_merge($newArray, $timeCharge);
}
/**
* Check and calculate surge price
*/
if ((int)$booking->PriceCard->sub_charge_status === 1) {
$surge = (int)$booking->PriceCard->sub_charge_type === 1 ? $booking->PriceCard->sub_charge_value : bcdiv($amount, $booking->PriceCard->sub_charge_value, 2);
$amount += $surge;
$parameter = ['price_card_id' => $price_card_id, 'booking_id' => $booking_id, 'parameter' => 'Surge-Charge', 'amount' => sprintf('%0.2f', $surge), 'type' => 'CREDIT', 'code' => ''];
$newArray[] = $parameter;
}
$discoutArray = array_filter($newArray, static function ($e) {
return ($e['type'] === 'DEBIT');
});
/**
* Check if there's a promo code applied to this booking
*/
if (!empty($discoutArray)) {
$promoDiscount = sprintf('%0.2f', array_sum(Arr::pluck($discoutArray, 'amount')));
$bookingDetails->promo_discount = $promoDiscount;
$amount = $amount > $promoDiscount ? $amount - $promoDiscount : '0.00';
} else {
$bookingDetails->promo_discount = '0.00';
}
/**
* Check if a driver or user is referee
*/
$referDiscount = $bookingData->Refer($booking->user_id);
if ($referDiscount !== NULL) {
switch ($referDiscount->offer_type) {
case '1':
$referAmount = $amount;
$amount = 0;
break;
case '2':
$referAmount = ($amount * $referDiscount->referral_offer_value) / 100;
$amount -= $referAmount;
break;
case '3':
$referAmount = $referDiscount->referral_offer_value;
$amount = $amount < $referAmount ? 0 : $amount - $referAmount;
break;
default:
$referAmount = 0;
break;
}
$parameter[] = ['price_card_id' => $price_card_id, 'booking_id' => $booking_id, 'parameter' => 'Promotion', 'amount' => sprintf('%0.2f', $referAmount), 'type' => 'DEBIT', 'code' => ''];
array_push($newArray, $parameter);
}
$billDetails = json_encode($newArray);
$bookingDetails->total_amount = sprintf('%0.2f', $amount);
$payment = new Payment();
if ($amount > 0) {
$payment->MakePayment($booking->id, $booking->payment_method_id, $amount, $booking->user_id, $booking->card_id);
} else {
$payment->UpdateStatus($booking->id);
}
$bookingDetails->bill_details = $billDetails;
$bookingDetails->save();
\App\Http\Controllers\Helper\CommonController::Commission($booking_id, $amount);
if ($booking->User->outstanding_amount) {
User::query()->where('id', $booking->user_id)->update(['outstanding_amount' => NULL]);
}
break;
case '3':
$amount = '';
break;
default:
$amount = '';
break;
}
if ($service_type_id === 5) {
$poolRide = new PoolController();
$poolRide->DropPool($booking, $request);
}
$distance = round($distance / 1000, 2) . ' Km';
$booking->booking_status = TripStatus::COMPLETED;
$booking->travel_distance = $distance;
$booking->travel_time = $timeFormat;
$booking->travel_time_min = $rideTime;
$booking->final_amount_paid = sprintf('%0.2f', $amount);
$booking->save();
$user_id = $booking->user_id;
$message = 'Driver End Ride';
$userdevices = UserDevice::getLastDevice($booking->user_id);
$playerids = [$userdevices->player_id];
$data = $bookingData->BookingNotification($booking);
Onesignal::UserPushMessage($playerids, $data, $message, 1, $booking->merchant_id);
return response()->json(['result' => '1', 'message' => trans('api.message15'), 'data' => $booking]);
}
Its coming from a table
[{"price_card_id":3,"booking_id":"42540","parameter":1,"amount":"1.50","type":"CREDIT","code":""},{"price_card_id":3,"booking_id":"42540","parameter":2,"amount":"0.00","type":"CREDIT","code":""},{"price_card_id":3,"booking_id":"42540","parameter":3,"amount":"0.00","type":"CREDIT","code":""},{"price_card_id":3,"booking_id":"42540","parameter":4,"amount":"0.00","type":"CREDIT","code":""},{"price_card_id":3,"booking_id":"42540","parameter":5,"amount":"0.00","type":"DEBIT","code":""},[{"price_card_id":3,"booking_id":"42540","parameter":"Promotion","amount":10,"type":"DEBIT","code":""}]]
Please tell me to show you anything if i'm wrong i'm really sorry for my poor knowledge in all this but i'm just in the first step to learn
So a quick look at your code the code that fails is $value->parameter.
That value comes from $booking_prices, so the issue lies in the objects returned when iterating booking_prices does not have the property parameter.
You could remove the error by doing $parameter = $value->parameter ?? null; // null as default value or by figuring out why the parameter attribute does not always exist.

JSON to VB.NET Deserialize Coding

I have a column in a table where all the details of the bill are getting stored. My brother used PHP web project to do that. Now I am trying to deserialize in VB.NET
Here is the PHP code (Controller)
public function add_to_list() {
$this->load->model('product_model', 'Product');
$pdts = $this->Product->get_data(true);
$available = $this->in_cart($this->input->post('id'));
$cart_qty = $available ? $available : 0;
if (!is_numeric($this->input->post('qty')) || !$this->input->post('id')) {
$res['success'] = false;
$res['msg'] = "Please enter the valid input";
} else {
$discount_percentage = $this->input->post('discount_percentage') ? $this->input->post('discount_percentage') : 0;
$discount_rate = $pdts->selling_price * ($discount_percentage / 100);
$final = $pdts->selling_price - $discount_rate;
$igst = $pdts->igst;
$igst_amt = calculate_price_by_precentage($this, $final, $pdts->igst);
$gross = $pdts->selling_price;
$total = $final + $igst_amt;
// $total = $gross + $igst_amt;
$available_qty = 5;
$data = array(
'id' => $pdts->id,
'qty' => $this->input->post('qty'),
'price' => $pdts->final_price,
'name' => $pdts->product,
'options' => array(
'product_id' => $pdts->id,
'product_hsn' => $pdts->hsn,
'product_name' => $pdts->product,
'product_unit' => $pdts->unit,
'product_rate' => $pdts->selling_price,
'product_mrp' => $pdts->mrp,
'product_gst' => $pdts->igst,
'product_cgst' => $pdts->cgst,
'product_gst_amount' => $igst_amt * $this->input->post('qty'),
'product_net_rate' => $pdts->cost_price,
'product_qty' => $this->input->post('qty'),
'product_free' => 0,
'product_discount_percentage' => $discount_percentage,
'product_discount_rate' => $discount_rate,
'product_total' => $total * $this->input->post('qty'),
'available_qty' => $available_qty,
'category' => $pdts->category,
'rate' => $pdts->selling_price,
'gross' => $gross,
'igst' => $igst,
'cgst' => $igst / 2,
'sgst' => $igst / 2,
'igst_amount' => $igst_amt,
'cgst_amount' => $igst_amt / 2,
'sgst_amount' => $igst_amt / 2,
'total' => $total //final_price($this, $pdts->selling_price, calculate_price_by_precentage($this, $pdts->selling_price, $pdts->discount), calculate_price_by_precentage($this, $pdts->selling_price, $pdts->sgst))
)
);
$this->cart->insert($data);
$this->pageViewData['final_discount'] = $this->input->post('discount') == '' ? '0' : $this->input->post('discount');
$this->pageViewData['final_discount_percentage'] = $this->input->post('discount_percentage') == '' ? '0' : $this->input->post('discount_percentage');
$this->pageViewData['ajax'] = true;
$res['success'] = true;
$res['msg'] = $this->load->view('order/cart_item', $this->pageViewData, true);
}
echo json_encode($res);
}
And this is how the cell Value looks.
> a:1:{s:32:"b3712e169500f4754be4a6a681220a96";a:7:{s:2:"id";s:2:"69";s:3:"qty";d:1;s:5:"price";d:26.25;s:4:"name";s:28:"Seeded
> Dates 200gm Wet
> Dates";s:7:"options";a:26:{s:10:"product_id";s:2:"69";s:11:"product_hsn";s:8:"08041020";s:12:"product_name";s:28:"Seeded
> Dates 200gm Wet
> Dates";s:12:"product_unit";s:2:"GM";s:12:"product_rate";s:5:"26.25";s:11:"product_mrp";s:2:"35";s:11:"product_gst";s:2:"12";s:12:"product_cgst";s:1:"6";s:18:"product_gst_amount";d:3.149999999999999911182158029987476766109466552734375;s:16:"product_net_rate";s:5:"24.70";s:11:"product_qty";s:1:"1";s:12:"product_free";i:0;s:27:"product_discount_percentage";i:0;s:21:"product_discount_rate";d:0;s:13:"product_total";d:29.39999999999999857891452847979962825775146484375;s:13:"available_qty";i:5;s:8:"category";s:9:"AD
> Seeded";s:4:"rate";s:5:"26.25";s:5:"gross";s:5:"26.25";s:4:"igst";s:2:"12";s:4:"cgst";i:6;s:4:"sgst";i:6;s:11:"igst_amount";d:3.149999999999999911182158029987476766109466552734375;s:11:"cgst_amount";d:1.5749999999999999555910790149937383830547332763671875;s:11:"sgst_amount";d:1.5749999999999999555910790149937383830547332763671875;s:5:"total";d:29.39999999999999857891452847979962825775146484375;}s:5:"rowid";s:32:"b3712e169500f4754be4a6a681220a96";s:8:"subtotal";d:26.25;}}
That looks a lot to me. As a beginner, I need a big help from you guys to get this done.

PHP json_encode JSON_NUMERIC_CHECK with 5808e70581507

Hi I'm experiencing some difficulties with the json_encode function in PHP.
I have an object with a hash (uniq ID) but it can have this format 5808e70581507 and because of the "e" surrounded with numbers I think json_encode is trying to set this fellow as an integer.
My object looks like this :
stdClass Object
(
[id] => 16
[title] => userinf2
[desc] => Travail →
[startoff] => 2016-10-20 05:00:00
[stop] => 2016-10-20 13:00:00
[status] => 1
[allDay] => 0
[code_mode] => M
[uid] => 31250
[gid] => 502935
[recurrence_id] =>
[recurrence_mode] =>
[recurrence_repeat_every] =>
[recurrence_repeat_day] =>
[recurrence_end_mode] =>
[recurrence_end_date] =>
[recurrence_end_number] =>
[multiple_timeschedule_id] => 5808e70581507
[start] => 2016-10-20 05:00:00
[end] => 2016-10-20 13:00:00
[color] => #7AE7BF
[className] => working uid_31250 code_mode_M gid_502935
)
Is there a way to make this working as it is ?
The code :
echo json_encode($events[6], JSON_NUMERIC_CHECK);
var_dump($events[6]->multiple_timeschedule_id); // string(13)
Assignment code :
function _oms_planning_planning_get()
{
try {
global $user;
$intervenants = _oms_planning_get_cab_intervenants();
$sql = 'SELECT * FROM planning_event WHERE 1=1 AND (';
$params_sql = array();
foreach ($intervenants as $key => $a_user) {
$sql .= ' uid =:uid' . $key . ' OR ';
$params_sql[':uid' . $key] = $a_user->uid;
}
$sql = substr($sql, 0, -3);
$sql .= ')';
$result = db_query($sql, $params_sql);
$db_events = $result->fetchAll();
$events = array_map(function ($db_event) use ($intervenants) {
$db_event->start = $db_event->startoff;
$db_event->end = $db_event->stop;
$db_event->color = (isset($db_event->gid) && intval($db_event->gid) > 0) ?
_oms_planning_planning_get_color_from_gid($db_event->gid) :
_oms_planning_planning_get_color_from_uid($intervenants, $db_event->uid);
$db_event->className = ($db_event->status == 1) ? 'working ' : 'idleness ';
$db_event->className .= 'uid_' . $db_event->uid . ' ';
$db_event->className .= 'code_mode_' . $db_event->code_mode . ' ';
$db_event->className .= 'gid_' . $db_event->gid;
return $db_event;
}, $db_events);
return $events;
} catch (Exception $e) {
print_r($e);
}
}
Mysql column type : multiple_timeschedule_id varchar(200) utf8_general_ci

How to transform this array in a json?

I have this relation CompanyhasMany Branch
And using $this->Company->find('all') output this:
(int) 1 => array(
'Company' => array(
'id' => '4',
'nome' => 'Somov',
'diretores' => 'Marcelo, Carl'
),
'Branch' => array(
(int) 0 => array(
'id' => '3',
'nome' => 'Serra',
'rua' => 'Rua teste 2 exttttt',
'numero' => '22',
'estado' => 'ES',
'cidade' => 'Etc',
'cep' => '',
'responsavel' => '',
'company_id' => '4',
'cnpj' => ''
)
)
),
(int) 2 => array(
'Company' => array(
'id' => '5',
'nome' => 'Soimpex',
'diretores' => ''
),
'Branch' => array()
)
)
I want to transform this in a json like this to use with Highchart:
[{
name: NAME OF COMPANY (nome),
data: NUMBER OF BRANCHS
}, {
name: NAME OF COMPANY (nome),
data: NUMBER OF BRANCHS
}]
How I do this convertion? Thanks
This will return a json object with only one result.
If we use previous example, can be done like this:
$arr = $this->Company->find('all'); // fetch the array
$arr1 = array();
foreach ($arr as $value) {
$tmp = array();
$tmp['name'] = $value['Company']['nome'];
$tmp['data'] = count($value['Branch']);
$arr1[] = $tmp;
}
return json_encode($arr1);
<?php
$sql=mysql_query("select * from Posts limit 20");
$response = array();
$posts = array();
while($row=mysql_fetch_array($sql))
{
$title=$row['title'];
$url=$row['url'];
$posts[] = array('title'=> $title, 'url'=> $url);
}
$response['posts'] = $posts;
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($response));
fclose($fp);
?>
This will generate a file called results.json file where your php file is stored on your online server, taking url and title variables from your MySQL db, you can change the variable names to what you want to fetch.
The whole idea is about like this
$arr=$this->Company->find('all'); // fetch the array
$arr1=array();
foreach ($arr as $value) {
$arr1['name']=$value['Company']['nome'];
//some more manual transform to desire format
}
return json_encode($arr1);