用逗号分隔记录

时间:2015-12-29 14:36:48

标签: php mysql

我是php新手,我想用逗号分隔记录。

数据库: the table in sql

我使用此代码获取数据:

<?php
$id = get_the_ID();
$sql = "SELECT * 
        FROM  tablename
        WHERE parent_id=$id";
$result = $conn->query($sql);

while($row = mysqli_fetch_array($result))
{
echo "Test: " . $row["value"]. "<br>";
}

mysqli_close($con);
?>

它返回两次:

Test: Test
Test: Test1

我想将记录与&#39;,&#39;分开。像这样:

Test: Test, Test1

3 个答案:

答案 0 :(得分:1)

将您的值存储在array中,然后使用&#34;,&#34; 进行内爆。你会得到结果:

$id = get_the_ID();
$sql = "SELECT * 
        FROM  tablename
        WHERE parent_id=$id";
$result = $conn->query($sql);

$yourArr = array();
while($row = mysqli_fetch_array($result))
{
    $yourArr[] = $row["value"];
    //echo "Test: " . $row["value"]. "<br>";
}
echo "Test: ". implode(",",$yourArr);

答案 1 :(得分:0)

您可以使用GROUP_CONCAT完全在MySQL中执行此操作:

<?php
$id = get_the_ID();
$sql = "SELECT `parent_id`, GROUP_CONCAT(`value` SEPARATOR ', ') AS comma_separated_values
        FROM tablename
        WHERE `parent_id` = '$id'
        GROUP BY `parent_id`";
$result = $conn->query($sql);
while ($row = mysqli_fetch_array($result))
{
    echo 'Test: ' . $row["comma_separated_values"]; // Test: test, test2
}
mysqli_close($con);
?>

您应该更改&#34; comma_separated_values&#34;将名称命名为更适合您数据的内容。

在您的特定情况下,您不需要while()循环,因为我们将MySQL限制为单行。

如果要从SQL查询中删除WHERE parent_id = '$id',则可以返回多个parent_id值的结果。例如:

while ($row = mysqli_fetch_array($result))
{
    echo 'Parent ' . $row['parent_id'] .': ' . $row["comma_separated_values"] . '<br>';
}

会回来:

父292:Test1,Test2
父293:Test3,Test4
父294:Test5,Test10,Test50
等...

答案 2 :(得分:-1)

您可以使用此更新查询

$query="Update tablename set value=CONCAT(value,',test1') where parentid='295'";
$result=mysqli_query($conn,$query);