我从数据库中获取数据并在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);
}
}
}
}
?>
答案 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);
}