У меня есть две таблицы: tableA
и tableB
Я хочу напечатать значение столбца tableB
. Моя структура таблицы ниже:php loop получение значений из второй таблицы
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
Я попытался код ниже:
Здесь для каждого идентификатора в tableA
будет несколько команд print_r($arr1)
, представленных как FIRST
. В коде он печатает повторяющиеся значения, но команда, возвращаемая как SECOND
, получает правильные значения.
Мой вопрос, как я могу избежать повторяющихся значений в FIRST
части кода
<?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);
}
?>
[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – h2ooooooo