使用MYSQL连接一列中的所有行

时间:2015-07-21 20:23:24

标签: php mysql

我正在尝试做一些我认为非常简单但却让我发疯的事情。

我有以下数据:

ID     ---    Name
1      ---    Joe
2      ---    Bob 
3      ---    Jim
4      ---    Mike

我希望能够从MYSQL中将结果显示为:

"Joe", "Bob", "Jim", "Mike"

我尝试了CONCATENATE教程,但它们似乎都是为了像ID一样合并。

$sql = "SELECT names, CONCAT_WS('', 'names') as namelist FROM peoplenames";

$result = $conn->query($sql);

echo $row["namelist"];

if ($result->num_rows > 0) {

    // output data of each row
    while($row = $result->fetch_assoc()) {

        $names = $row["nameslist"];
        echo $names;
    }
} 

如果我在循环外回声,我只得到最新的结果。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

将查询更改为SELECT names FROM peoplenames,并使用PHP concat获取字符串:

$names = "";

while($row = $result->fetch_assoc()) {
  $names .= '"' . $row["names"] . '",';
}

echo $names;

答案 1 :(得分:0)

问题是你每次循环都会覆盖$names的内容。

像这样更改你的代码

$sql = "SELECT names FROM peoplenames";

$result = $conn->query($sql);

$names = NULL;

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {
        $names .= sprintf('"%s",',$row['names']);
    }
    // output amalgamated date
    rtrim($names, ',');
    echo $names;
}