Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Select in ordine alfabetico e numerico

    Ciao a tutti io ho una serie di articoli nella tabella del db che vorrei ordinare in una pagina e suddividere per lettera; ho creato quindi lo script che è questo
    Codice PHP:
    SELECT*FROM links WHERE  link_title LIKE '$l%' 
    dove $l è un array con tutte le lettere dell alfabeto.Con un ciclo for ottengo questo risultato:

    [A]
    ahkkkj
    alklldl
    .....

    [B]
    balls
    bgkjkj
    ...

    [C]
    cajjs
    ...

    ecc ecc
    Fin qui tutto bene...ora io vorrei selezionare anke i titoli degli articoli che iniziano per numero e raggrupparli tutti assieme: cioè vorrei ottenre una cosa cosi:

    [0-9]
    007 -
    2012 film
    30 giorni di buio
    ....
    [A]
    ahkkkj
    alklldl
    ....
    [B]
    balls
    bgkjkj
    ....
    Sui forum ho letto che il comando dovrebbe essere scritto cosi:

    Codice PHP:
    SELECT*FROM links WHERE link_title LIKE '[0-9]%' 
    ma questo è il mio problema NON FUNZIONA
    Ho provato anke a sostituire a [0-9]% le lettere ad esempio [a-f]% (dovrebbe selezionare tutti i titoli ke iniziano con l'intervallo di lettere dalla a alla f) ma ninete non funziona neanke cosi......DOVE SBAGLIO??

  2. #2
    che db usi?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Scusa hai ragione mi sono dimenticato di scriverlo uso MySQL

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Perdona l'ignoranza, ma piuttosto che fare n query (una per ogni lettera dell'alfabeto), non fai prima a fare una select odinando i risultati sul tuo campo link_title e limitarti a verificare il primo carattere?

    Una cosa del tipo
    codice:
    <?php
    $sql="select * from links order by link_title";
    $res=  mysql_query($sql);
    $lg="";
    while($rec =  mysql_fetch_assoc($res)){
        if(substr($rec['link_title'],1,1)!=$lg){
            $lg=substr($rec['link_title'],1,1);
            echo "Gruppo ".((is_numeric($lg)?"[0-9]":"[$lg]"));
        }
        echo "{$rec['link_title']}
    ";
    }
    ?>

  5. #5
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,647
    Codice PHP:
    SELECT 
    FROM links 
    WHERE link_title REGEXP 
    '^[0-9]'

  6. #6
    Grazie @Ranma2 lo script funziona!

    @Grino ho provato lo script ma non funziona molto bene devo migliorarlo grazie comunque ti faccio sapere quando lo metto a posto

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 © 2024 vBulletin Solutions, Inc. All rights reserved.