Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250

    tag cloud che confusione!

    ciao a tutti!
    In questi giorni stò guardando attentamente le soluzioni per realizzare il tag cloud anche facendo delle ricerche in questo forum.
    Tutti gestiscono i tag con una tabella separata chiamata e all'interno le parole chiavi.

    Ho una serie di domande da farvi, perchè ho molta confusione in testa:
    1. E' meglio inserire ogni parola chiave in un singolo record o creare una colonna "contatore" ??
    2. Se creo la colonna contatore, come faccio a relazionarla con l'articolo che la contiente?

  2. #2
    Io di solito faccio così: una tabella tags dove metto tutti i tag singolarmente.

    Poi creo una tabella tagcloud dove inserisco i riferimenti per ogni articolo.

    Esempio:
    La tabella tags contiene queste righe:

    codice:
    ---------------------
    | ID    | TAG       | 
    ---------------------
    | 1     | lavoro    |
    ---------------------
    | 2     | amici     |
    ---------------------
    Mentre la tabella tagcloud contiene i riferimenti al singolo post con una riga per ogni tag:

    codice:
    ----------------------------------------
    | ID    | ID_TAG       | ID_POST       | 
    ----------------------------------------
    | 1     | 1            | 565           | 
    ----------------------------------------
    | 2     | 2            | 565           | 
    ----------------------------------------
    | 3     | 2            | 545           | 
    ----------------------------------------
    Il post con id 565 avrà quindi i due tag: lavoro,amici mentre quello con id 545 avrà solo il tag amici
    Consiglio poi per la generazione della tagcloud la lettura di questo bel tutorial: http://www.developertutorials.com/bl...ds-in-php-165/

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Anch'io avevo pensato di gestire così la relazione tra tag e post.. ma allora mi domando perchè tanti utilizzano la colonna COUNT nella tabella Tag?!?..

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Vorrei sapere se anche altri condividono il procedimento di Napolux o avete altre soluzioni alternative da proporre per fare un confronto.

  5. #5
    Originariamente inviato da musghs
    Vorrei sapere se anche altri condividono il procedimento di Napolux o avete altre soluzioni alternative da proporre per fare un confronto.
    Questo è l'unico modo in cui puoi relazionare post e tag. Altrimenti potrai sì contare i tag utilizzati, ma non relazionarli al post.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Grazie dell'aiuto! Ottimo consiglio!
    Stò già implementando il modulo nel mio cms.

    Un ultima cosa.. secondo te va bene come stò facendo?

    nella pagina di inserimento ho messo un semplice input di testo.
    mentre nella pagina di inserimento ho fatto questo ragionamento:

    Codice PHP:
    <?php
    function tag($table$id$tag)
    {    
    // svuoto tutti i tag cloud del post     
    mysql_query("DELETE FROM tagcloud WHERE tabella='$table' AND id_art='$id'");
        
    // estrapolo i tag dall'input di testo separati dallo spazio
        
    $array explode(" ",$tag);
        foreach(
    $array as $tag){

    // controllo se esistono dei tag uguali nella tabella tag passo l'id del tag esistente, altrimenti inserisco nella tabella tag un nuovo record.
        
    if($tag!=""){ 
            
    $s="SELECT * FROM tag WHERE tag='$tag'";
            
    $r=mysql_query($s);
            
    $d=mysql_fetch_array($r);
                if(
    $d['id']){
                
    $id_tag=$d['id'];            
                }else{
                
    mysql_query("INSERT INTO tag (tag) VALUES ('$tag')");
                
    $id_tag=mysql_insert_id();
                }
            
    mysql_query("INSERT INTO tagcloud (id_tag, id_art, tabella) VALUES ('$id_tag', '$id', '$table')");
                    }
    // elimino dalla tabella tag quei tutti gli id che non sono più agganciati al post        
    mysql_query("DELETE tag FROM tag LEFT JOIN tagcloud ON tag.id = tagcloud.id_tag WHERE tagcloud.id_tag IS NULL");
        }
    }
    ?>
    Ho sbagliato? o va bene secondo te?
    Mi manca solo il controllo iniziale dei punti, virgole e caratteri speciali.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Scusa Napolux,
    visto che ho utilizzato il tuo stesso metodo di gestione tag, saresti così gentile da potermi spiegare oppure postare la parte di visualizzazione dei tag cloud?

    Dal tuo riferimento non ho capito molto questa parte:
    $tags = array('php'=>30, 'javascript'=>24, 'java'=>17, 'python'=>26, 'ruby'=>17);

    Come faccio a creare un array così da 2 tabelle?

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.