PHP获取重复的JSON数组

时间:2014-05-09 11:50:11

标签: php json

我有JSON数组输出,但它包含重复值 下面你可以在第0个索引中看到重复的json_array ... 我不知道,问题是什么, 需要建议,为什么......?提前致谢

我的输出:

[{"gallery_url":"fdkgvdjvb.img"}][{"gallery_url":"fdkgvdjvb.img"},{"gallery_url":"gdfgh.mp4"}]

必填项:

[{"gallery_url":"fdkgvdjvb.img"},{"gallery_url":"gdfgh.mp4"}]

我的代码:

<?php
$json = array();
$gallery=$_GET['gallery'];



        $con=mysqli_connect("localhost","allluser","password4");
    if($con)
    {
    //echo "connected";
    }
    $db_select = mysqli_select_db($con,'jumeirah_db');
    if($db_select)
    {
    //echo "db selected";
    }
    $user_type=$_GET['user_type'];
    $image=mysqli_query($con,"Select gallery_url from ju_gallery where user_type='$user_type'");
if ($image) {


while($r = mysqli_fetch_assoc($image)) {
    $json[] = $r;
    print json_encode($json);
}
}   
mysqli_close($con);

?>

2 个答案:

答案 0 :(得分:1)

while($r = mysqli_fetch_assoc($image)) {
    $json[] = $r;
}

print json_encode($json);

这应打印您的预期结果。

您的数据库实际上会返回两个结果,这些结果将导致while循环中的两次迭代。

第一次迭代将$ r添加到$ json数组中。现在数组有一个元素,你打印出来。

第二次迭代向你的$ json数组添加另一个$ r,该数组现在有两个元素。 第二个print输出您的预期结果。

&#34;复制&#34;是由你的while循环中的打印引起的。

答案 1 :(得分:0)

取出json_encode语句。

<?php
$json = array();
$gallery=$_GET['gallery'];

        $con=mysqli_connect("localhost","allluser","password4");
    if($con)
    {
    //echo "connected";
    }
    $db_select = mysqli_select_db($con,'jumeirah_db');
    if($db_select)
    {
    //echo "db selected";
    }
    $user_type=$_GET['user_type'];
    $image=mysqli_query($con,"Select gallery_url from ju_gallery where user_type='$user_type'");
if ($image) {


while($r = mysqli_fetch_assoc($image)) {
    $json[] = $r;
}
 print json_encode($json);
}   
mysqli_close($con);

?>