Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    195

    Creare cloud (o lista) tags

    Ciao ragazzi, devo creare una lista delle tags usate negli articoli del blog.

    Solo che non so se ho seguito la strada giusta visto che è la prima volta che faccio qualcosa del genere. La tabella dei blog contiene una colonna per le tags (campo text) con tutte le tags divise da virgola.
    E' sufficente? Come posso estrapolare la lista delle tags così?
    Devo creare un'altra tabella? Gestirle in altra maniera?

    Grazie in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    195
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    40
    Le singole tag le puoi ottenere con explode. Comunque, ricordati che una colonna con valori multipli non è buona progettazione.

  4. #4
    Io forse creerei una tabella chiamata tag con i campi "id, nome, contatore" dove in contatore indico il numero di presenze. Così potrò aggiungerne di nuovi o incrementare le presenze tramite form o tramite quello che vuoi, ed avrò quindi un valore numerico per far il cloud ed incrementare la dimensione del font.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    195
    Originariamente inviato da slurpolo
    Le singole tag le puoi ottenere con explode. Comunque, ricordati che una colonna con valori multipli non è buona progettazione.
    Grazie, penso che farò un gigantesco array con le tags di ciascuna entry, per poi eliminare gli elementi uguali e procedere a stampare le tags.. però non so se è possibile contare gli elementi con lo stesso nome all'interno dell'array..

    qual'è una buona progettazione per una cosa del genere?

    Io forse creerei una tabella chiamata tag con i campi "id, nome, contatore" dove in contatore indico il numero di presenze. Così potrò aggiungerne di nuovi o incrementare le presenze tramite form o tramite quello che vuoi, ed avrò quindi un valore numerico per far il cloud ed incrementare la dimensione del font.
    Interessante, ma in fase di input dell'entry del blog quale sarebbe la situazione che mi si presenta? Sempre il text box con le virgole? Poi lo faccio analizzare in fase di inserimento, guardando se ciascuno delle tags inserite esiste nella tabella e aggiungerla o aumentare il contatore eventualmente?

  6. #6
    bhè... potresti utilizzare un form con dei checkbox per i tag che ci sono già; ed un input per quelli che eventualmente si vogliono aggiungere.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    195
    Originariamente inviato da mrbubbaz
    bhè... potresti utilizzare un form con dei checkbox per i tag che ci sono già; ed un input per quelli che eventualmente si vogliono aggiungere.
    Scomodo, specie con molte tags.

  8. #8
    si è vero il select diventa scomodo con molte tag... allora fai una textarea.
    Magari potresti metterci a fianco un'area in java dove hai i tag già presenti, tipo cloud ma senza formattazione del testo, al click te lo aggiunge direttamente alla textarea con la virgola ecc...
    Metti tutto in un'array e prima di caricare controlli quali nomi di tag sono già presenti con un semplice ciclo for.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    195
    Ho risolto, voglio postare come che magari serve a qualcuno.
    Codice PHP:
    <?PHP
        $tags_db 
    mysql_query("SELECT * FROM `blog` ORDER BY `ID` DESC") or die (mysql_error());                         
        while (
    $t mysql_fetch_assoc($tags_db)) {
            
    $comma substr($t["tags"], -1); //se l'ultimo carattere non è una virgola la devo aggiungere
                
    if($comma!=",") {
                    if(
    $whole!="") { $whole $whole ", " $t["tags"]; }
                        else { 
    $whole $t["tags"]; } // creo una mega stringa con tutte le tag
                
    }
        }
        
    $ar_whole explode(",",$whole); // genero l'array
        
    $unique array_unique($ar_whole); // elimino i valori uguali
        
    sort($unique);
        
    reset($unique);
        while (list(
    $key$tag) = each($unique)) {
            
    $search mysql_query("SELECT * FROM `blog` WHERE `tags` LIKE '%$tag%'") or die (mysql_error());
            
    $nums mysql_num_rows($search);
            echo 
    "<a href=\"risorse_browse.php?tag=$tag\" class=\"F_12N_G\">".$tag." ($nums)</a>
    "
    //ordino in ordine alfabetico e conto quante entry hanno quella tag
        
    }
        
    ?>

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.