Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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
带有Json编码的PHP_Php_Android_Json - Fatal编程技术网

带有Json编码的PHP

带有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

我连接我的数据库并获得一些信息,这部分是正确的。但是我想对我的数据进行JSON编码

这是我的密码

<?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中已被删除。谢谢您的回答。我可能会尝试这种方法谢谢你的回答。我可能会尝试这种方法