php循环从第二个表中获取值
我有两个表:php循环从第二个表中获取值,php,mysqli,Php,Mysqli,我有两个表:tableA和tableB我想打印tableB的列值。 我的表格结构如下: Table A -id--------Name----- 1 A 2 B 3 C 4 D -------------------- Table B tableB_id-----------tableA_id-------------value------- 1 1
tableA
和tableB
我想打印tableB
的列值。
我的表格结构如下:
Table A
-id--------Name-----
1 A
2 B
3 C
4 D
--------------------
Table B
tableB_id-----------tableA_id-------------value-------
1 1 68
2 1 94
3 1 97
4 1 88
5 1 93
6 1 69
7 1 95
8 2 68
9 2 94
10 3 68
11 4 68
12 4 95
------------------------------------------------------
最终输出需要如下,值以逗号分隔
id------Name----------value-----------------------------------------
1 A 68,94,97,88,93,69,95
2 B 68,94
3 C 68
4 D 68,95
我尝试了以下代码: 这里对于
表A中的每个id
将有多个print\r($arr1)
命令,表示为FIRST
。在代码中,它正在打印重复的值,但命令重新呈现为SECOND
正在获得正确的值
我的问题是如何避免第一部分中的重复值
<?php
$rs = mysqli_query($dbc,"SELECT * FROM `tableA` limit $offset,$rows");
$items = array();
$a=0;
while($row1 = mysqli_fetch_object($rs))
{
$qry1 = mysqli_query($dbc,"SELECT tableB.value FROM tableA ,tableB WHERE tableA.`tableA_id`=tableB.`tableA_id` AND tableA.`tableA_id`='".$row->id."'");
$i=0;
while($row2 = mysqli_fetch_assoc($qry1))
{
if($row2['id']=$row1->id)
{
$arr1 = $row2['value'];
}
print_r($arr1); // SECOND
$i++;
}
print_r($arr1); // FIRST
array_push($items, $row1);
}
?>
我不确定我是否正确理解了这个问题-但我认为您可能在寻找的是我认为GeoffK与GROUP_CONCAT的合作方向是正确的。试着这样做:
SELECT tableA.id AS id,
tableA.name AS name,
GROUP_CONCAT( tableB.value ) AS value
FROM tableA
JOIN tableB
ON tableA.id = tableB.tableA_id
GROUP BY tableA.id
是的,我可以使用GROUP_CONCAT,但我可能A在使用逗号分隔后,我需要再引用一个表来获取id的名称。这可能吗?我使用了GROUP CONCAT和查询。问题是GROUP_CONCAT值必须引用到另一个表才能获取id的名称,这就是为什么我想避免小组讨论的原因。你能更新你的问题以展示你所需要的完整示例吗,包括第三个表格?。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。