【问题标题】:How to retrieve values from multiple rows as a single string如何从多行中检索值作为单个字符串
【发布时间】:2016-12-05 13:39:18
【问题描述】:

我已经制作了三列tags_id,tags,user_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);
}

我应该在我的代码中进行哪些更改。? 请帮帮我,谢谢。

【问题讨论】:

  • 删除 array_push 并尝试这个 $result[tags][] = $row['tags'];
  • {"result":[{"tags":"Pascol","PHP",","Python"}]} ? 它甚至不是一个有效的 json 字符串,你的意思是 {"结果":[{"tags":"Pascol,PHP,Python"}]}?

标签: php mysql arrays string


【解决方案1】:

你的array_push 意思是

使用 $key => $value 将新元素推送到您的数组

所以这种情况下的解决方案是删除array_push 并尝试

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

【讨论】:

  • 但添加此代码标签后被认为是一个数组。我只想保留为字符串。
  • 您的结果 "tags":"Pascol","PHP",","Python" 必须使用数组才能做到。抱歉回复晚了。
猜你喜欢
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多