获得空的JSON响应

时间:2016-11-04 05:45:33

标签: php json

我从数据库中获取数据并在json中输出数据但获取空JSON。不知道为什么?我得到一个空的阵列帖子。你可以查看我的代码,能不能帮帮我。

这是我的代码

<?php
//Turn off all error reporting
//error_reporting(0);
ini_set ("display_errors", "1");

  error_reporting(E_ALL);

  define("ENCRYPTION_KEY", "!@#$%^&*");



  /**
  * Returns an encrypted & utf8-encoded
  */
   function encrypt($pure_string, $encryption_key) {
   $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
  return $encrypted_string;
   }

  /**
  * Returns decrypted original string
   */
  function decrypt($encrypted_string, $encryption_key) {
   $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv);
   return $decrypted_string;
   }


  if(($_GET['action'])&&($_GET['username'])&&($_GET['key'])) {

     $select = $_GET['action'];
     $username =$_GET['username']; //no default
      $key= $_GET['key'];
      if($key=='India'){
      if($select=='select'){
        /* connect to the db */
     $connect = mysqli_connect('localhost','root','')or die("Couldn't connect to database!");
     mysqli_select_db($connect,'easy_sign') or die ("Couldn't find database");



 $query ="SELECT * FROM origin WHERE username ='$username' ";
 $result = mysqli_query($connect,$query);
 $numrows=mysqli_num_rows($result);
 if($numrows!==0)
 {

 while($row = mysqli_fetch_array($result))
 {

  $username = $row['username'];
  $path =     $row['path'];
  $decrypted_path = decrypt($path, ENCRYPTION_KEY);
  $filename = $row['filename'];
  $decrypted_name = decrypt($filename, ENCRYPTION_KEY);
  $date = $row['date'];

   }




  /* create one master array of the records */

  $posts = array();
  if(mysqli_num_rows($result)) {
    while($post = mysqli_fetch_assoc($result)) {
        $posts[] = array('post'=>$post);
    }
   }

    /* output in necessary format */

    header('Content-type: application/json');
    echo json_encode(array('posts'=>$posts));




     /* disconnect from the db */
    @mysqli_close($link);
      }
    }
   }

   }
   ?>

2 个答案:

答案 0 :(得分:2)

请将if($numrows!==0)更改为if($numrows > 0) 而你可以像我一样准备好你的json:

<?php
$query ="SELECT * FROM origin WHERE username ='$username' ";
$result = mysqli_query($connect,$query);
$numrows = mysqli_num_rows($result);

if($numrows > 0)
{
    $post = array();
    while($row = mysqli_fetch_array($result))
    {
        $path =     $row['path'];
        $filename = $row['filename'];

        $post['username'] = $row['username'];
        $post['decrypted_path'] = decrypt($path, ENCRYPTION_KEY);
        $post['decrypted_name'] = decrypt($filename, ENCRYPTION_KEY);
        $post['date'] = $row['date'];
    }
    echo json_encode($post);
}
?>

答案 1 :(得分:0)

试试这个

if($numrows!==0)
{

  $posts = array();
  $data=array();
  while($row = mysqli_fetch_array($result))
   {

     $posts[]=array('username'=>$row['username'],'path'=>$row['path'],'decrypted_path '=>decrypt($path, ENCRYPTION_KEY),'filename'=>$row['filename'],'decrypted_name'=>decrypt($filename, ENCRYPTION_KEY),'date'=>$row['date']);

  }

    $data['posts']=$posts;

    /* output in necessary format */

    header('Content-type: application/json');
    echo json_encode($data);


     /* disconnect from the db */
    @mysqli_close($link);
}