Ordinare e dividere per lettera risultati query sql
Come da titolo, mi trovo davanti ad un problema.
Allora, ho una query in un foreach che viene fatta in base agli elementi di un array che è formato dalle lettere dell'alfabeto:
Codice PHP:
if (empty($_GET['id']) && empty($_GET['letter']))
{
$letters = array('A', 'B', 'C', 'D', 'E',
'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
'V', 'W', 'X', 'Y', 'Z');
foreach($letters as $letter)
{
$sql = 'SELECT * FROM `ip_bands` WHERE LEFT(name,1)=\'' . $letter . '\' ORDER BY name ASC';
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Couldn\'t retrieve band data', '', __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result))
{
$band_id = $row['id'];
$band_name = $row['name'];
$template->assign_block_vars('band_list', array(
'L_LIST_BAND_NAME' => $lang['Band_List_Ban_Name'],
'LETTER' => $letter,
'BAND_ID' => $band_id,
'BAND_NAME' => $band_name,
));
}
}
}
Il tutto funziona, mi stampa a video SOLO le lettere che sono presenti nel DB, come prima lettera del campo name.
Soltanto che mi stampa la lettera tante volte quanti sono i valori che hanno quella lettera:
Codice:
A
Arco
C
Cuore
H
Hotel
S
Strazio
S
Struzzo
mentre dovrebbe stampare:
Codice:
A
Arco
C
Cuore
H
Hotel
S
Strazio
Struzzo
Il codice epr stamapare a video è:
Codice HTML:
{IMG_TBL}<table class="forumline" width="100%" cellspacing="0" cellpadding="15px" border="0">
<th colspan="2">{PAGE_TITLE}</th>
<!-- BEGIN band_list -->
<tr><td class="row1 row-center" colspan="2"><a href="{FULL_SITE_PATH}band.php?letter={band_list.LETTER}">{band_list.LETTER}</a></td></tr>
<tr><td class="row1 row-left" colspan="2"><a href="{FULL_SITE_PATH}band.php?id={band_list.BAND_ID}">{band_list.BAND_NAME}</a></td></tr>
<!-- END band_list -->
</table>{IMG_TBR}
Come posso risolvere? Grazie ancora :mrgreen: