Saya pikir cara terbaik untuk melakukannya adalah dalam kode PHP, bukan dalam SQL.
Anda dapat mencapai ini hanya dengan membuat array asosiatif di PHP, menggunakan bidang "teks" sebagai kunci, yang berisi data yang Anda inginkan - dan mengisinya saat Anda menarik informasi dari database.
Contoh:
SQL:SELECT * FROM myTable
Kode 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'];
}
?>
Ini akan memberi Anda sebuah array sebagai berikut:
'myTextString' => 'types' => 'type1', 'type2', 'type3'
'idAccounts' => 'account1', 'account2'
'anotherTextString' => 'types' => 'type2', 'type4'
'idAccounts' => 'account2', 'account3'
dan seterusnya.
Semoga bermanfaat.
EDIT:Poster meminta bantuan dengan tampilan.
<?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']);
}
/* Atau, Anda dapat mengulang setiap larik yang terdapat dalam $info jika Anda membutuhkan lebih banyak kontrol */
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 . ' - ';
}
}