Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php mysql为移动应用程序创建json api_Php_Json - Fatal编程技术网

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

使用php mysql为移动应用程序创建json api,php,json,Php,Json,您好,我需要为我正在构建的代码创建一个json编码api 目前我的项目有3个表项目表,付款表和短信表 项目表包含我的项目的详细信息,项目表链接到付款和短信表 我列出了我想要制作的json表单 { "Data": { "Projects": [{ "id": "10023", "Info": "Arabic project info ", "paymentMethods": { "Bank": [{ "accname": "Zakat Acc", "accnameEn": "ح

您好,我需要为我正在构建的代码创建一个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\u encode()函数将其包装起来 例如:

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

不要手动构建JSON字符串。以需要数据的形式创建对象和数组,然后使用
json\u encode($data)非常感谢您,但银行付款方式:{“银行”:{“账户名”:“050679649”,“国家”:“DE6902240002505051511717801”,“Iban”:“阿拉伯银行名”,“银行名”:“阿拉伯银行名”}就是这样,我需要的是“银行”:[{“账户名”:“Zakat Acc”,“账户名”:“Zakat Acc”,“accnameEn”:“Jakat Acc”,“accnameEn”:“Jakat Acc”1600e”,“country”1600030e:“Acc”,{“accname”:“Zakat Acc”,“accnameEn”:“UAE”,“Acc”:“00344304332412”}您想要“Bank”=[]的数组,或者您想要它作为对象“Bank”={}??谢谢您的回复..我想要它作为“Bank”:[}如果您想要“Bank”“作为数组,然后简单地将其转换为数组!检查我的更新ANWSERT谢谢:)你能告诉我如何为sms也这么做吗:)
{"firstname":"Rafique","lastname":"Mohammed","email":"plus.arr@gmail.com"}
<?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