Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    [MySQL] stampare nomi raggrappati per iniziale?

    Buon giorno,
    ho la necessità di stampare tutti dli utenti presenti in un database, in questo modo:
    A
    tutti i nomi che iniziano per A
    B
    tutti i nomi che iniziano per B
    ...
    ecc
    ...
    ecc

    Come si può fare?
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    Codice PHP:
    SELECT FROM NomeTabella WHERE ColonnaDaCercare LIKE "A%"
    Al posto di A poi ci metti B,C,D,E,ecc....

  3. #3
    molto piu convenientemente fai

    codice:
    SELECT * FROM users ORDER BY user_name
    e poi, dopo che lanci la query

    codice:
    $previousUserNameFirstChar = false;
    while($row = mysql_fetch_object($query))
    {
        if ($previousUserNameFirstChar != $row->user_name{0})
        {
            $previousUserNameFirstChar = $row->user_name{0};
            
            echo 'Utenti che iniziano per ' . $perviousUserNameFirstChar . '
    ';
        }
        
        echo $row->user_name . '
    ';
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    Bè allora fai una query che lo faccia in automatico, non c'avevo pensato.
    Codice PHP:
    SELECT FROM users ORDER BY ASC
    e poi utilizzi un ciclo per estrarre il tutto.
    Codice PHP:
    <?php
    $query 
    "SELECT * FROM users ORDER BY ASC";
    while(
    $result mysql_fetch_assoc($query))
    {
        echo 
    $result["Nome"]."
    "
    ;
    }
    ?>
    P.S : Ovviamente puoi migliorarlo è solo per esempio e spunto.

  5. #5
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Salve a tutti e grazie per i vostri interventi.
    Ci sono delle sintassi che io ancora non conosco quindi non so se è quello che serve a me.
    Così a naso mi sembrebbe giusto il secondo posto di daniele_dll, ma per chiarezza specifico ancora una volta cosa mi serve:
    Dovrei realizzare una barra di navigazione di ricerca utenti per nome
    [A] (B) [C] [D].....[Z] [TUTTI]
    e se viene selezionato il link "tutti", mi stampa tutti i nomi ordinati per iniziale e con l'iniziale alfabetica in evidenza, del tipo
    A
    Alessandro
    Anita
    Antonio
    ....

    B
    Barbara
    Beatrice
    Bianca
    ....

    ecc...ecc
    "To iterate is human, to recurse, divine." (R.(Heller))

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    Io ti consiglierei la query scritta da me perchè quella ordina alfabeticamente tutti i dati quindi prima tutti quelli con la A,B,C ecc....
    Poi per formattare i nomi sia per la barra che in scala, in scala hai già la script ovvero con il
    per metterli tutti sulla stessa linea basta che ci metti un separatore ....(|,/,-,ec...)

  7. #7
    Originariamente inviato da Ophy94
    Io ti consiglierei la query scritta da me perchè quella ordina alfabeticamente tutti i dati quindi prima tutti quelli con la A,B,C ecc....
    Poi per formattare i nomi sia per la barra che in scala, in scala hai già la script ovvero con il
    per metterli tutti sulla stessa linea basta che ci metti un separatore ....(|,/,-,ec...)
    ma scusa, il codice che ho scritto io, non è più adatto? Stampa anche la lettera iniziale del nome

    per mettere la barra va scritto questo codice ad esempio
    codice:
    echo '
    
    ';
    
    for($charIndex = 65; $charIndex <= 90; $charIndex++)
    {
        echo '[ ' . chr($charIndex) . ' ]';
    }
    
    echo '</p>';
    echo '
    ';
    e poi per far funzionare la barra basta fare
    codice:
    while($row = mysql_fetch_object($query))
    {
        if ($previousUserNameFirstChar != $row->user_name{0})
        {
            $previousUserNameFirstChar = $row->user_name{0};
            
            echo '<a name="Lettera' . $perviousUserNameFirstChar . '">Utenti che iniziano per ' . $perviousUserNameFirstChar . '</a>
    ';
        }
        
        echo $row->user_name . '
    ';
    }

  8. #8
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    @daniele_dll: il tuo esempio funziona perfettamente come serve a me.
    L'unica cosa, sono i link sulle lettere che non portano da nessuna parte, ma immagino perchè debbano essere configurate a dovere.
    "To iterate is human, to recurse, divine." (R.(Heller))

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.