使用php-mysql为移动应用程序创建json-api


Create json api for mobile application using php mysql

你好,我需要为我正在构建的代码创建一个json编码api

目前我的项目有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 ']}}}';

您不需要附加字符串来创建json字符串。创建一个保存数据的数组,并使用json_encode()函数包装它例如:

<?php
$array_data=[];
$array_data['firstname']="Rafique";
$array_data['lastname']="Mohammed";
$array_data['email']="plus.arr@gmail.com";
// or any data which you want in json
$json_output=json_encode($array_data);
echo $json_output;

输出:

{"firstname":"Rafique","lastname":"Mohammed","email":"plus.arr@gmail.com"}

更新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