在我的脚本中,我从数据库中获取数据并将其存储在数组中并将其输出到json中。一切都正确只是我得到的第一个数组是null然后第二个数组有正确的数据。我不明白为什么我得到第一个null数组。
如果我在没有null数组的数组中得到正确的结果,我的问题就解决了。 这是我得到的输出
[[],{"url":"example.com\/sign_pdf\/PDFSign.pdf","name":"PDFSign.pdf","signer":"aman","sequence":"1","message":"Hello","flag":"0"}]
我不需要First null数组。我为什么要这样做。
这是代码。
if(($_GET['action'])&&($_GET['username'])&&($_GET['key'])) {
$select = $_GET['action'];
$username =$_GET['username']; //no default
$key= $_GET['key'];
if($key=='abcxyz'){
if($select=='select'){
/* connect to the db */
$connect = mysqli_connect('localhost','root','')or die("Couldn't connect to database!");
mysqli_select_db($connect,'sign') or die ("Couldn't find database");
$query ="SELECT * FROM path WHERE signer ='$username' ";
$result = mysqli_query($connect,$query);
$numrows=mysqli_num_rows($result);
$posts[] = array();
if($numrows!==0) {
while($row = mysqli_fetch_array($result)) {
$post['url'] = $row['url'];
$post['name'] = $row['name'];
$post['signer'] = $row['signer'];
$post['sequence'] = $row['sequence'];
$post['message'] = $row['message'];
$post['flag'] = $row['flag'];
array_push($posts, $post);
}
header('Content-type: application/json');
echo json_encode($posts);
}
}
}
}
答案 0 :(得分:1)
您的$posts[]=array()
应该与$posts=array()
类似,并使用$post
将$posts
追加到$posts[]=$post
。
$posts = array();
if ($numrows !== 0) {
while ($row = mysqli_fetch_array($result)) {
$post = array();
$post['url'] = $row['url'];
$post['name'] = $row['name'];
$post['signer'] = $row['signer'];
$post['sequence'] = $row['sequence'];
$post['message'] = $row['message'];
$post['flag'] = $row['flag'];
$posts[] = $post;
}
}
答案 1 :(得分:1)
您正在array(array())
$posts[] = array();
替换它:
$posts[] = array();
与
$posts = array();
$posts = array();
将创建一个空array()
而不是array(array())
答案 2 :(得分:1)
而不是
$posts[] = array();
将数组分配给$posts
的第一个元素,使用
$posts = array();
初始化变量,我认为你想要做的事。
答案 3 :(得分:0)
您应该删除 $ posts 数组。 array_push($ posts,$ post)基本上是你的空$ posts数组并将$ post数组添加到它。