[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Sql вывод массива
Xander
Доброго времени суток у меня есть массив такого вида

pzy_id	pzy	lom_species	price
99 ГПЦ Самара 5А 11000
99 ГПЦ Самара 22А 10800
99 ГПЦ Самара 3А 11200
99 ГПЦ Самара 12А 10800
99 ГПЦ Самара 16А 4000
71 ЗУ Красная Глинка 5А 10000
71 ЗУ Красная Глинка 22А 10000
71 ЗУ Красная Глинка 3А 10000
71 ЗУ Красная Глинка 12А 10000
71 ЗУ Красная Глинка 16А 3000


в переменной $arr

каким образом мне сделать вывод вида

<tr>
<td>
ГПЦ Самара</td>
<td>
11000</td>
<td>
10800</td>
<td>
11200</td>
<td>
10800</td>
<td>
4000</td>
</tr>


через пхп, сейчас у меня так

foreach ($arr as $row) {

echo '<tr><td>'.$row[pzy].'</td>';
echo '<td>'.$row[price].'</td></tr>';
}


и получается
<tr>
<td>
ГПЦ Самара</td>
<td>
11000</td>
</tr>

<tr>
<td>
ГПЦ Самара</td>
<td>
10800</td>
</tr>


заранее премного благодарен
Kusss
Собрать многомерный массив в php
$arr[ $row['pzy'] ][] = $row['price'];
или в SQL через GROUP_CONCAT
SELECT pzy, GROUP_CONCAT(price) FROM `table` GROUP BY pzy ORDER BY price DESC
Xander
что то я не догоню можно пример через многомерный массив на php, небольшой
Kusss
	$arr = [];

$sql = "
SELECT
pzy, price
FROM
`table`
ORDER BY
price DESC
"
;
$result = $mysqli->query($sql);
if ($result->num_rows >= 0) {
while ($value = $result->fetch_assoc() ){

$arr[ $row['pzy'] ][] = $row['price'];
}
}


...

if (count($arr)){

foreach ($arr AS $pzy => $value){
echo '<tr>';
echo '<td>'. $pzy .'</td>';
foreach ($value AS $val)
echo '<td>'. $val .'</td>';
echo '</tr>';
}

}

FatCat
Kusss
Если количество Самар и Красных Глинок не совпадет, количество ячеек в строках тоже не совпадет, и верстка поломается.
В цикле перебора массива надо счетчик запускать, ловить наибольшее число, и в цикле сборки таблицы добавлять пустые ячейки.

_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.