带有Json编码的PHP
我连接我的数据库并获得一些信息,这部分是正确的。但是我想对我的数据进行JSON编码 这是我的密码带有Json编码的PHP,php,android,json,Php,Android,Json,我连接我的数据库并获得一些信息,这部分是正确的。但是我想对我的数据进行JSON编码 这是我的密码 <?php include("ayar.php"); header('Content-Type: application/json'); //$ad = $_POST["ad"]; $ad = "USER89623476571"; $bilgial = @mysql_query("SELECT * FROM KULLANICI WHER
<?php
include("ayar.php");
header('Content-Type: application/json');
//$ad = $_POST["ad"];
$ad = "USER89623476571";
$bilgial = @mysql_query("SELECT * FROM KULLANICI WHERE ID_NUMARASI='$ad' ORDER BY ID ASC LIMIT 1");
$oku=mysql_fetch_assoc($bilgial);
$metin= $oku['BAGLI_CIHAZ_ID'];
$yenimetin = explode(',',$metin);
foreach($yenimetin as $yazdir){
bilgial($yazdir);
}
function bilgial($kullanicisi)
{
$TERMINAL_BILGI_AL = @mysql_query("SELECT * FROM TERMINAL WHERE ID='$kullanicisi' ORDER BY ID ASC LIMIT 1");
while($TERMINAL_KAYITLAR=@mysql_fetch_assoc($TERMINAL_BILGI_AL)){
$GELEN_SERIAL = $TERMINAL_KAYITLAR["SERIALNUMBER"];
$GELEN_TERMINAL_ADI = $TERMINAL_KAYITLAR["TERMINAL_ADI"];
$GELEN_SICAKLIK_T1_ALT = $TERMINAL_KAYITLAR["SICAKLIK_T1_ALT"];
$GELEN_SICAKLIK_T1_UST = $TERMINAL_KAYITLAR["SICAKLIK_T1_UST"];
$GELEN_SICAKLIK_T2_ALT = $TERMINAL_KAYITLAR["SICAKLIK_T2_ALT"];
$GELEN_SICAKLIK_T2_UST = $TERMINAL_KAYITLAR["SICAKLIK_T2_UST"];
$GELEN_SICAKLIK_T3_ALT = $TERMINAL_KAYITLAR["SICAKLIK_T3_ALT"];
$GELEN_SICAKLIK_T3_UST = $TERMINAL_KAYITLAR["SICAKLIK_T3_UST"];
$GELEN_SICAKLIK_T1 = $TERMINAL_KAYITLAR["SICAKLIK_T1_SON_DATA"];
$GELEN_SICAKLIK_T2 = $TERMINAL_KAYITLAR["SICAKLIK_T2_SON_DATA"];
$GELEN_SICAKLIK_T3 = $TERMINAL_KAYITLAR["SICAKLIK_T3_SON_DATA"];
$GELEN_NEM_H1_ALT = $TERMINAL_KAYITLAR["NEM_H1_ALT"];
$GELEN_NEM_H1_UST = $TERMINAL_KAYITLAR["NEM_H1_UST"];
$GELEN_NEM_H2_ALT = $TERMINAL_KAYITLAR["NEM_H2_ALT"];
$GELEN_NEM_H2_UST = $TERMINAL_KAYITLAR["NEM_H2_UST"];
$GELEN_NEM_H3_ALT = $TERMINAL_KAYITLAR["NEM_H3_ALT"];
$GELEN_NEM_H3_UST = $TERMINAL_KAYITLAR["NEM_H3_UST"];
$GELEN_NEM_H1 = $TERMINAL_KAYITLAR["NEM_H1_SON_DATA"];
$GELEN_NEM_H2 = $TERMINAL_KAYITLAR["NEM_H2_SON_DATA"];
$GELEN_NEM_H3 = $TERMINAL_KAYITLAR["NEM_H3_SON_DATA"];
$GELEN_SICAKLIK_T1_AD = $TERMINAL_KAYITLAR["SICAKLIK_T1_AD"];
$GELEN_SICAKLIK_T2_AD = $TERMINAL_KAYITLAR["SICAKLIK_T2_AD"];
$GELEN_SICAKLIK_T3_AD = $TERMINAL_KAYITLAR["SICAKLIK_T3_AD"];
$GELEN_NEM_H1_AD = $TERMINAL_KAYITLAR["NEM_H1_AD"];
$GELEN_NEM_H2_AD = $TERMINAL_KAYITLAR["NEM_H2_AD"];
$GELEN_NEM_H3_AD = $TERMINAL_KAYITLAR["NEM_H3_AD"];
$GELEN_SON_DATA = $TERMINAL_KAYITLAR["GELEN_SON_DATA"];
}
// Json datasına çevrilecek diziyi yaratalım.
$json = array();
$json["Bilgiler"][] = array(
'GELEN_SERIAL'=> $GELEN_SERIAL,
'TERMINAL_ADI'=> $GELEN_TERMINAL_ADI,
'SICAKLIK_T1'=> $GELEN_SICAKLIK_T1,
'SICAKLIK_T2'=> $GELEN_SICAKLIK_T2,
'SICAKLIK_T3'=> $GELEN_SICAKLIK_T3,
'NEM_H1'=> $GELEN_NEM_H1,
'NEM_H2'=> $GELEN_NEM_H2,
'NEM_H3'=> $GELEN_NEM_H3,
'SON_DATA'=> $GELEN_SON_DATA,
);
echo json_encode($json);
}
?>
但是,我希望是这样
{"Bilgiler":
[
{"GELEN_SERIAL":"AGE6000010",
"TERMINAL_ADI":"DENEME TERM",
"SICAKLIK_T1":"23,8",
"SICAKLIK_T2":"23,9",
"SICAKLIK_T3":"23,8",
"NEM_H1":"30",
"NEM_H2":"29",
"NEM_H3":"31",
"SON_DATA":"2016-10-31 20:54:00"
},
{"GELEN_SERIAL":"AGE6000010",
"TERMINAL_ADI":"DENEME TERM",
"SICAKLIK_T1":"23,8",
"SICAKLIK_T2":"23,9",
"SICAKLIK_T3":"23,8",
"NEM_H1":"30",
"NEM_H2":"29",
"NEM_H3":"31",
"SON_DATA":"2016-10-31 20:54:00"}
]
}
我如何做到这一点,我在php代码中做了哪些更改 这里应该更改什么:
// previous code here
$json = array();
foreach($yenimetin as $yazdir) {
// see - each result of `bilgial` function you add to an array
$json['Bilgiler'][] = bilgial($yazdir);
}
echo json_encode($json);
双语功能的变化:
function bilgial($kullanicisi)
{
$TERMINAL_BILGI_AL = @mysql_query("SELECT * FROM TERMINAL WHERE ID='$kullanicisi' ORDER BY ID ASC LIMIT 1");
// codes here.
// instead of encoding every array - return it:
// $json = array(); // this line is useles
return array(
'GELEN_SERIAL'=> $GELEN_SERIAL,
'TERMINAL_ADI'=> $GELEN_TERMINAL_ADI,
'SICAKLIK_T1'=> $GELEN_SICAKLIK_T1,
'SICAKLIK_T2'=> $GELEN_SICAKLIK_T2,
'SICAKLIK_T3'=> $GELEN_SICAKLIK_T3,
'NEM_H1'=> $GELEN_NEM_H1,
'NEM_H2'=> $GELEN_NEM_H2,
'NEM_H3'=> $GELEN_NEM_H3,
'SON_DATA'=> $GELEN_SON_DATA,
);
}
更进一步-您可以使用WHERE IN
sql子句并只调用函数一次
正如我已经提到的-停止使用不推荐的mysql
extensionasap这里应该更改什么:
// previous code here
$json = array();
foreach($yenimetin as $yazdir) {
// see - each result of `bilgial` function you add to an array
$json['Bilgiler'][] = bilgial($yazdir);
}
echo json_encode($json);
双语功能的变化:
function bilgial($kullanicisi)
{
$TERMINAL_BILGI_AL = @mysql_query("SELECT * FROM TERMINAL WHERE ID='$kullanicisi' ORDER BY ID ASC LIMIT 1");
// codes here.
// instead of encoding every array - return it:
// $json = array(); // this line is useles
return array(
'GELEN_SERIAL'=> $GELEN_SERIAL,
'TERMINAL_ADI'=> $GELEN_TERMINAL_ADI,
'SICAKLIK_T1'=> $GELEN_SICAKLIK_T1,
'SICAKLIK_T2'=> $GELEN_SICAKLIK_T2,
'SICAKLIK_T3'=> $GELEN_SICAKLIK_T3,
'NEM_H1'=> $GELEN_NEM_H1,
'NEM_H2'=> $GELEN_NEM_H2,
'NEM_H3'=> $GELEN_NEM_H3,
'SON_DATA'=> $GELEN_SON_DATA,
);
}
更进一步-您可以使用WHERE IN
sql子句并只调用函数一次
正如我已经提到的-stop使用不推荐的mysql
扩展asap您可以采用MVC风格的编码。
创建代码,并将不同部分分开
在这里,您有以下逻辑:
Call SQL1
While on SQL1 results {
call function
Call SQL2
While on SQL2 results {
get values
}
Write json values
}
如您所见,您将有几个json调用。
因此,你应该:
Create finalVariable
Call SQL1
While on SQL1 results {
call function
Call SQL2
While on SQL2 results {
get values
}
set final values on finalVariable (return values of function ?)
}
Call json encode on finalVariable
例如:
<?php
function bilgial($param) {
// ...
return [
'GELEN_SERIAL' => $GELEN_SERIAL,
// ...
]
}
$finalValues = [];
foreach($yenimetin as $yazdir){
$finalValues['Bilgiler'][] = bilgial($yazdir);
}
echo json_encode($finalValues);
您可以采用MVC风格的编码。
创建代码,并将不同部分分开
在这里,您有以下逻辑:
Call SQL1
While on SQL1 results {
call function
Call SQL2
While on SQL2 results {
get values
}
Write json values
}
如您所见,您将有几个json调用。
因此,你应该:
Create finalVariable
Call SQL1
While on SQL1 results {
call function
Call SQL2
While on SQL2 results {
get values
}
set final values on finalVariable (return values of function ?)
}
Call json encode on finalVariable
例如:
<?php
function bilgial($param) {
// ...
return [
'GELEN_SERIAL' => $GELEN_SERIAL,
// ...
]
}
$finalValues = [];
foreach($yenimetin as $yazdir){
$finalValues['Bilgiler'][] = bilgial($yazdir);
}
echo json_encode($finalValues);
echo json\u encode($json)
应该在包含所有结果的数组上运行一次,并停止使用mysql\uz
扩展。它被弃用,在php7中被删除。echo json_encode($json)
应该在包含所有结果的数组上运行一次,并停止使用mysql\uz
扩展。它已被弃用,在php7中已被删除。谢谢您的回答。我可能会尝试这种方法谢谢你的回答。我可能会尝试这种方法