Visualizzazione risultati 1 fino 4 di 4

Discussione: Ordinare e dividere per lettera risultati query sql

  1. #1
    Guest

    Predefinito 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

  2. #2
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    il problema stà nell'implementazione dei template.
    se fosse stato per inclusione di un php sarebbe stato molto semplice.
    non saprei, mi spiace.
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  3. #3
    Guest

    Predefinito

    Bè, tutto dipende da com'è strutturato il sistema del template.
    Se non conosciamo quello, è difficile aiutarti!


    Ciao!

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    Bè, tutto dipende da com'è strutturato il sistema del template.
    Se non conosciamo quello, è difficile aiutarti!


    Ciao!
    Credvo si fosse capito, l'ho dato per socntato, scusate

    Allora, nel php scrivo:
    Codice PHP:
    $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,
    ));
    Come vedete c'è la scritta:
    Codice:
     $template->assign_block_vars('band_list', array(
    Che utilizzo nel template inquesto modo:
    Codice HTML:
    <!-- BEGIN band_list --> 
    Stampa questo codice solo è band list e per ogni elemento.
    Potrò usare quelle key solo in questo modo:
    {band_list.KEY}
    <!-- END band_list -->
    Le Key sono le variabili da utilizzare nel template, che verranno richiamate con {nome.KEY} e assumeranno il value.

    Facendo un esmepio con una key dell'array:
    Codice HTML:
    <!-- BEGIN band_list --> 
    <span>{band_list.BAND_NAME}</span>
    <!-- END band_list -->
    Mi stamperà a video tutti i nomi, e ripeterà il codice tra BEGIN e END. Supponiamo che le band siano 4, mi stamperà:
    Codice:
    <span>{band_list.BAND_NAME}</span>
    <span>{band_list.BAND_NAME}</span>
    <span>{band_list.BAND_NAME}</span>
    <span>{band_list.BAND_NAME}</span>
    Se non avete capito ditemi pure, cercherò di spiegarlo meglio. Potete vedere un altro esempio QUI

    Grazie ancora

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •