2016-04-05 3 views
1

Здравствуйте мне нужно создать JSON кодирования API для кода, который я строюСоздание JSon API для мобильных приложений с помощью PHP MySQL

В настоящее время мой проект есть 3 таблицы таблица пункт, оплата таблица и смс таблица

элемент таблицы содержит подробности моего проекта и таблица элемент связан с платежной и смс таблицы

Я перечисляю форму JSon который я хочу сделать

{ 

"Data": { 

"Projects": [{ 
"id": "10023", 
"Info": "Arabic project info ", 
"paymentMethods": { 
"Bank": [{ 
"accname": "Zakat Acc", 
"accnameEn": "حساب الزكــــــاة", 
"country": "UAE", 
"acc": "0034430430012" 
}, { 
"accname": "Zakat Acc", 
"accnameEn": "حساب الزكــــــاة", 
"country": "UAE", 
"acc": "00344304332412" 
}], 
"SMS": [{ 
"operatorEn": "etisalat", 
"shortcode": "4236", 
"operator": "إتصالات" 
}, { 
"operatorEn": "etisalat", 
"shortcode": "4346", 
"operator": "إتصالات" 
}], 
"CC": { 
"-URL": 
"http://www.sharjahcharuty.org/donations/" 
} 
} 
}, { 
"id": "10026", 
"Info": "Arabic project info ", 
"InfoEn": "project info in english", 
"paymentMethods": { 
"Bank": [{ 
"accname": "Zakat Acc", 
"accnameEn": "حساب الزكــــــاة", 
"country": "UAE", 
"acc": "0034430430012" 
}, { 
"accname": "Zakat Acc", 
"accnameEn": "حساب الزكــــــاة", 
"country": "UAE", 
"acc": "00344304332412" 
}], 
"SMS": [{ 
"operatorEn": "etisalat", 
"shortcode": "4236", 
"operator": "إتصالات" 
}, { 
"operatorEn": "etisalat", 
"shortcode": "4346", 
"operator": "إتصالات" 
}], 
"CC": { 
"-URL": "http://www.sharjha.org/donations/" 
} 
} 
}] 
} 
} 

Я создал код PHP для системы Но этот код у меня есть создать с помощью скобок и разделённый запросов, но эта система не дает результат, что я ожидал

echo $string='{"Data":{'; 


//echo $string='"Projects":'; 
$sql2 = "SELECT * FROM wg_items where cat_id=6007;"; 
$query = $this->db->query($sql2); 
echo $string='"Projects":'; 
echo $string='['; 
$intcount=0; 
$scateg=""; 
if ($query->num_rows() > 0) { 
foreach ($query->result() as $row){ 

//$jsonrows[]=array("id"=>$row->cat_id,"name"=>$row->item_name); 
echo $string='{'; 
echo $string = 'id:'.$row->item_id; 
echo $string=','; 
echo $string = 'name:'.$row->item_name; 
echo $string=','; 
//-------------------------------------------------------------// 
$hasComma = false; 
echo $string='"paymentmethods":'; 
echo $string='"Bank":['; 
$sql2 = "SELECT * FROM paymentmethods where cid=587 "; 
$query = $this->db->query($sql2); 
foreach ($query->result() as $row){ 
     echo '{'; 
     echo $string = 'accname:'.$row->acc.',' ; 
     echo $string = 'country:'.$row->IBAN.',' ; 
     echo $string = 'Iban:'.$row->Bankname.',' ; 
     echo $string = 'Bankname:'.$row->Bankname.',' ; 
     echo $string = '},'; 
} 
echo $string = '],'; 

echo $string='"SMS":['; 
$sql3 = "SELECT * FROM sms where cid=537 "; 
$query = $this->db->query($sql3); 
$hasComma = false; 
foreach ($query->result() as $rows){ 
    echo '{'; 

    echo 'Operator:'.$rows->operator.',' ; 
    echo 'shortcode:'.$rows->shortcode.','; 
    echo 'keyword:'.$rows->keyword.','; 
    echo 'price:'.$rows->price; 


    echo $string = '},'; 
    if($hasComma = TRUE) 
    { 

    } 
    $hasComma = TRUE; 
} 
echo $string = '}],'; 

echo $string='"CC":{'; 

echo $string3='"-URL:"'; 
echo $string3='"HTTP:SHARJAHCHARTITY.COM"'; 
ECHO '}}}'; 
echo ','; 
} 
echo ']}}}'; 
+2

Не создавайте строки JSON вручную. Создайте объекты и массивы в форме, в которой вы хотите данные, а затем используйте 'json_encode ($ data);' – RiggsFolly

ответ

3

Вы не предполагаете, чтобы добавить строки для создания JSON строка. Создать массив, который содержит данные и обернуть его json_encode() функции Для ех:

<?php 

$array_data=[]; 

$array_data['firstname']="Rafique"; 
$array_data['lastname']="Mohammed"; 
$array_data['email']="[email protected]"; 

// or any data which you want in json 

$json_output=json_encode($array_data); 

echo $json_output; 

ВЫВОД:

{"firstname":"Rafique","lastname":"Mohammed","email":"[email protected]"} 

UPDATE 2:

В вашем случае

<?php 

//.. your code 

if ($query->num_rows() > 0) { 
foreach ($query->result() as $row){ 

$jsonrows=array("id"=>$row->item_id,"name"=>$row->item_name); 


$jsonrows["paymentmethods"]=array("Bank"=>[]); 

$sql2 = "SELECT * FROM paymentmethods where cid=587 "; 
$query = $this->db->query($sql2); 

foreach ($query->result() as $row){ 
//convert bank as array 
     $jsonrows["paymentmethods"]["Bank"][] = array(
     "accname"=>$row->acc, 
     "country"=>$row->IBAN, 
     "Iban"=>$row->Bankname, 
     "Bankname"=>$row->Bankname); 

} 

//DO IT FOR REST OF THE CODE 
+0

большое вам спасибо, кроме банковских платежных методов ": {" Банк ": {" accname ":" 0506796049 "," страна " : «DE690240002520511717801», «Iban»: «ИМЯ АРАБСКОГО БАНКА», «Имя банка»: «ИМЯ АРАБСКОГО БАНКА»}, это так, что мне нужно «Банк»: [{ «accname»: «Zakat Acc», "accnameEn": "حساب الزكاة", "страна": "ОАЭ", "согласно": "0034430430012" }, { "accname": "Закят Acc", "accnameEn": "حساب الزكاة" , «страна»: «ОАЭ», «acc»: «00344304332412» }] – riz

+0

вы хотите массив для «Банка» = [] или хотите, чтобы он был объектом «Банк», = {} ?? –

+0

благодарю вас за ответ. Я хочу, чтобы он был «Банком»: [{}] – riz

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