Мисля, че най-добрият начин да направите това би бил в PHP кода, а не в SQL.
Можете да постигнете това, като просто създадете асоциативен масив в PHP, като използвате полето "текст" като ключ, което съдържа данните, които искате - и ги попълвате, докато изтегляте информация от базата данни.
Пример:
SQL:SELECT * FROM myTable
PHP код:
<?php
// Connect to MySQL database
$result = mysql_query($sql_query_noted_above);
$stringsInfo = array();
while ($row = mysql_fetch_assoc($result))
{
if (!isset($stringsInfo[$row['text']]))
{
$stringsInfo[$row['text']] = array('types' => array(), 'idAccounts' => array());
}
$stringsInfo[$row['text']]['types'][] = $row['type'];
$stringsInfo[$row['text']]['idAccounts'][] = $row['idAccount'];
}
?>
Това ще ви даде масив, както следва:
'myTextString' => 'types' => 'type1', 'type2', 'type3'
'idAccounts' => 'account1', 'account2'
'anotherTextString' => 'types' => 'type2', 'type4'
'idAccounts' => 'account2', 'account3'
и така нататък.
Надявам се това да е полезно.
РЕДАКТИРАНЕ:Постерът поиска помощ с показването.
<?php
foreach ($stringsInfo as $string => $info)
{
echo $string . '<br />';
echo 'Types: ' . implode(', ', $info['types']); // This will echo each type separated by a comma
echo '<br />';
echo 'ID Accounts: ' . implode(', ', $info['idAccounts']);
}
/* Като алтернатива можете да завъртите всеки масив, съдържащ се в $info, ако имате нужда от повече контрол */
foreach ($stringsInfo as $string => $info)
{
echo $string . '<br />';
echo 'Types: ';
foreach ($info['types'] as $type)
{
echo $type . ' - ';
}
echo '<br />';
echo 'ID Accounts: '
foreach ($info['idAccounts'] as $idAccount)
{
echo $idAccount . ' - ';
}
}