Php JSON数据集结构
我正在将mysql记录创建到json数组中,但json数据集似乎存在一些问题。PFB代码:- JSON输出即将到来:-Php JSON数据集结构,php,mysql,arrays,json,dataset,Php,Mysql,Arrays,Json,Dataset,我正在将mysql记录创建到json数组中,但json数据集似乎存在一些问题。PFB代码:- JSON输出即将到来:- [{ "ID": "1", "Coupon_ID": "ABC1", "Campaign_ID": "353", "Campaign_Name": "Test1", "Title": "Test1", "Description": "Test1", "Category": "Test1", "Type": "Cou
[{
"ID": "1",
"Coupon_ID": "ABC1",
"Campaign_ID": "353",
"Campaign_Name": "Test1",
"Title": "Test1",
"Description": "Test1",
"Category": "Test1",
"Type": "Coupon",
"Type_Value": "1231",
"Tracking_URL": "http://abc1.com",
"Added_Date": "2016-07-13",
"Expiry_Date": "2016-07-28"
}][
{
"ID": "2",
"Coupon_ID": "ABC2",
"Campaign_ID": "3532",
"Campaign_Name": "Test2",
"Title": "Test2",
"Description": "Test2",
"Category": "Test2",
"Type": "Coupon",
"Type_Value": "1232",
"Tracking_URL": "http://abc2.com",
"Added_Date": "2016-07-13",
"Expiry_Date": "2016-07-28"
}]
我想要这样的东西:-
[{
"ID": "1",
"Coupon_ID": "ABC1",
"Campaign_ID": "353",
"Campaign_Name": "Test1",
"Title": "Test1",
"Description": "Test1",
"Category": "Test1",
"Type": "Coupon",
"Type_Value": "1231",
"Tracking_URL": "http://abc1.com",
"Added_Date": "2016-07-13",
"Expiry_Date": "2016-07-28"
}
{
"ID": "2",
"Coupon_ID": "ABC2",
"Campaign_ID": "3532",
"Campaign_Name": "Test2",
"Title": "Test2",
"Description": "Test2",
"Category": "Test2",
"Type": "Coupon",
"Type_Value": "1232",
"Tracking_URL": "http://abc2.com",
"Added_Date": "2016-07-13",
"Expiry_Date": "2016-07-28"
}]
我的意思是[]这些括号不是每个记录的括号,它们应该只出现一次
PHP代码:-
<?php
header('Content-type: application/json');
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "couponsdeals";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$apikey = $_GET['API_KEY'];
$sql = "SELECT AFF_ID FROM api WHERE API_KEY= '$apikey' ";
//$sql1= "SELECT ID,Coupon_ID,Campaign_ID,Campaign_Name,Title,Description,Category,Type,Type_Value,Tracking_URL,Added_Date,Expiry_Date FROM couponcode_table ";
$sql1 = "SELECT * FROM couponcode_table ";
$result = $conn->query($sql);
$result1 = $conn->query($sql1);
if ($result) {
// output data of each row
while ($row = $result->fetch_assoc()) {
$data = $row["AFF_ID"];
if ($result1) {
while ($row1 = $result1->fetch_assoc()) {
$data1 = $row1["Tracking_URL"];
$mydata = explode("&", $data1);
if (isset($mydata[2])) {
$json1 = array();
$mydata2 = $mydata[0] . "&aff_id=" . $data . "&" . $mydata[2];
$values = array(
'ID' => $row1['ID'],
'Coupon_ID' => $row1['Coupon_ID'],
'Campaign_ID' => $row1['Campaign_ID'],
'Campaign_Name' => $row1['Campaign_Name'],
'Title' => $row1['Title'],
'Description' => $row1['Description'],
'Category' => $row1['Category'],
'Type' => $row1['Type'],
'Type_Value' => $row1['Type_Value'],
'Tracking_URL' => $mydata2,
'Added_Date' => $row1['Added_Date'],
'Expiry_Date' => $row1['Expiry_Date']
);
array_push($json1, $values);
echo json_encode($json1, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
} else {
$json = array();
$mydata1 = $mydata[0] . "&aff_id=" . $data;
$value = array(
'ID' => $row1['ID'],
'Coupon_ID' => $row1['Coupon_ID'],
'Campaign_ID' => $row1['Campaign_ID'],
'Campaign_Name' => $row1['Campaign_Name'],
'Title' => $row1['Title'],
'Description' => $row1['Description'],
'Category' => $row1['Category'],
'Type' => $row1['Type'],
'Type_Value' => $row1['Type_Value'],
'Tracking_URL' => $mydata1,
'Added_Date' => $row1['Added_Date'],
'Expiry_Date' => $row1['Expiry_Date']
);
array_push($json, $value);
echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
}
}
}
}
} elseif (!$result) {
echo "0 results";
}
$conn->close();
?>
您需要在while循环之外初始化/回显JSON数组:
$json = array();
while(....) {
while(....) {
//.......
array_push($json, $value);
//.......
}
}
echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
您需要在while循环之外初始化/回显JSON数组:
$json = array();
while(....) {
while(....) {
//.......
array_push($json, $value);
//.......
}
}
echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
我只是更改了你的代码,尝试一下这个代码,希望你能得到预期的结果
<?php
header('Content-type: application/json');
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "couponsdeals";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$apikey = $_GET['API_KEY'];
$sql = "SELECT AFF_ID FROM api WHERE API_KEY= '$apikey' ";
//$sql1= "SELECT ID,Coupon_ID,Campaign_ID,Campaign_Name,Title,Description,Category,Type,Type_Value,Tracking_URL,Added_Date,Expiry_Date FROM couponcode_table ";
$sql1= "SELECT * FROM couponcode_table ";
$result = $conn->query($sql);
$result1 = $conn->query($sql1);
if ($result) {
// output data of each row
$json = array();
while($row = $result->fetch_assoc()) {
$data= $row["AFF_ID"];
if($result1){
while($row1 = $result1->fetch_assoc()) {
$data1=$row1["Tracking_URL"];
$mydata = explode("&",$data1);
if(isset($mydata[2])){
$mydata2= $mydata[0]."&aff_id=".$data."&".$mydata[2];
$values =array(
'ID' => $row1['ID'],
'Coupon_ID' => $row1['Coupon_ID'],
'Campaign_ID' => $row1['Campaign_ID'],
'Campaign_Name' => $row1['Campaign_Name'],
'Title' => $row1['Title'],
'Description' => $row1['Description'],
'Category' => $row1['Category'],
'Type' => $row1['Type'],
'Type_Value' => $row1['Type_Value'],
'Tracking_URL' =>$mydata2,
'Added_Date' => $row1['Added_Date'],
'Expiry_Date' => $row1['Expiry_Date']
);
array_push($json, $values);
} else {
$mydata1= $mydata[0]."&aff_id=".$data;
$value =array(
'ID' => $row1['ID'],
'Coupon_ID' => $row1['Coupon_ID'],
'Campaign_ID' => $row1['Campaign_ID'],
'Campaign_Name' => $row1['Campaign_Name'],
'Title' => $row1['Title'],
'Description' => $row1['Description'],
'Category' => $row1['Category'],
'Type' => $row1['Type'],
'Type_Value' => $row1['Type_Value'],
'Tracking_URL' =>$mydata1,
'Added_Date' => $row1['Added_Date'],
'Expiry_Date' => $row1['Expiry_Date']
);
array_push($json, $value);
}
}
}
}
echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
}
elseif(!$result) {
echo "0 results";
}
$conn->close();
?>
我刚刚更改了您的代码,请试用此代码,希望您能如期发布
<?php
header('Content-type: application/json');
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "couponsdeals";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$apikey = $_GET['API_KEY'];
$sql = "SELECT AFF_ID FROM api WHERE API_KEY= '$apikey' ";
//$sql1= "SELECT ID,Coupon_ID,Campaign_ID,Campaign_Name,Title,Description,Category,Type,Type_Value,Tracking_URL,Added_Date,Expiry_Date FROM couponcode_table ";
$sql1= "SELECT * FROM couponcode_table ";
$result = $conn->query($sql);
$result1 = $conn->query($sql1);
if ($result) {
// output data of each row
$json = array();
while($row = $result->fetch_assoc()) {
$data= $row["AFF_ID"];
if($result1){
while($row1 = $result1->fetch_assoc()) {
$data1=$row1["Tracking_URL"];
$mydata = explode("&",$data1);
if(isset($mydata[2])){
$mydata2= $mydata[0]."&aff_id=".$data."&".$mydata[2];
$values =array(
'ID' => $row1['ID'],
'Coupon_ID' => $row1['Coupon_ID'],
'Campaign_ID' => $row1['Campaign_ID'],
'Campaign_Name' => $row1['Campaign_Name'],
'Title' => $row1['Title'],
'Description' => $row1['Description'],
'Category' => $row1['Category'],
'Type' => $row1['Type'],
'Type_Value' => $row1['Type_Value'],
'Tracking_URL' =>$mydata2,
'Added_Date' => $row1['Added_Date'],
'Expiry_Date' => $row1['Expiry_Date']
);
array_push($json, $values);
} else {
$mydata1= $mydata[0]."&aff_id=".$data;
$value =array(
'ID' => $row1['ID'],
'Coupon_ID' => $row1['Coupon_ID'],
'Campaign_ID' => $row1['Campaign_ID'],
'Campaign_Name' => $row1['Campaign_Name'],
'Title' => $row1['Title'],
'Description' => $row1['Description'],
'Category' => $row1['Category'],
'Type' => $row1['Type'],
'Type_Value' => $row1['Type_Value'],
'Tracking_URL' =>$mydata1,
'Added_Date' => $row1['Added_Date'],
'Expiry_Date' => $row1['Expiry_Date']
);
array_push($json, $value);
}
}
}
}
echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
}
elseif(!$result) {
echo "0 results";
}
$conn->close();
?>
如果要获取循环中生成的所有数据,可能需要将所有数据存储在一个变量中,并对输出进行差异echo$which代码>直到脚本结束并超出循环。这样你就可以一次把所有的数据都带走。。。下面您的代码稍加修改和注释就可以更好地说明这一点
如果要获取循环中生成的所有数据,可能需要将所有数据存储在一个变量中,并对输出进行差异echo$which代码>直到脚本结束并超出循环。这样你就可以一次把所有的数据都带走。。。下面您的代码稍加修改和注释就可以更好地说明这一点
不要在循环中使用json\u编码。相反,将数组存储在某个临时数组$resultArray[]=array(…)中。循环之后,执行echo json_encode($resultArray)只需初始化$json1=array();外部循环不要在循环中使用json_编码。相反,将数组存储在某个临时数组$resultArray[]=array(…)中。循环之后,执行echo json_encode($resultArray)只需初始化$json1=array();外环