我正在尝试做一些我认为非常简单但却让我发疯的事情。
我有以下数据:
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;
}
}
如果我在循环外回声,我只得到最新的结果。
有什么想法吗?
答案 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;
}