我是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
答案 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);