如何将多行中的值作为单个字符串检索

时间:2016-07-31 09:17:27

标签: php mysql arrays string

我创建了包含三列tags_idtagsuser_id的MySQL数据库,它必须提供与user_id给定的所有标记。

例如:对于此链接:" http://allwaysready.16mb.com/Cuboid/tagsTest.php?user_id[]=7"

输出是:

{"result":[{"tags":"Pascol"},{"tags":"PHP"},{"tags":"Python"}]}

但我需要我的结果是这样的唱歌字符串:

{"result":[{"tags":"Pascol","PHP",","Python"}]}

它不应该在数组中我希望它在一个字符串中。

这是我的php代码:

<?php 

if($_SERVER['REQUEST_METHOD']=='GET'){

    $user_id  = $_GET['user_id'];

    require_once('dbConnect.php');

    $user_tags = array();

    foreach ($_REQUEST['user_id'] as $key => $val) {
        $user_tags[$key] = filter_var($val, FILTER_SANITIZE_STRING);
    }
    $user_ids = "'" . implode("','", $user_tags) . "'";
    $sql = "SELECT * FROM user_tags WHERE user_id IN ({$user_ids})";

    $r = mysqli_query($con,$sql);

    //creating a blank array 
    $result = array();

    //looping through all the records fetched
    while($row = mysqli_fetch_array($r)){

        //Pushing name and id in the blank array created 
        array_push($result,array(
           "tags"=>$row['tags']
        ));
    }

    //Displaying the array in json format 
    echo json_encode(array('result'=>$result));

    mysqli_close($con);
}

我的代码应该更改什么? 请帮帮我们谢谢。

1 个答案:

答案 0 :(得分:1)

您的array_push意味着

使用$ key =&gt;推送到数组新元素$值

在这种情况下解决方法是删除array_push并尝试

$result['tags'][] = $row['tags'];