使用php mysql为移动应用程序创建json api
您好,我需要为我正在构建的代码创建一个json编码api 目前我的项目有3个表项目表,付款表和短信表 项目表包含我的项目的详细信息,项目表链接到付款和短信表 我列出了我想要制作的json表单使用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": "ح
{
"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