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

    creare tag cloud da campo db

    salve a tutti,
    ho fatto varie ricerche ma non riesco a trovare la soluzione giusta al mio problema.
    Ho diverse tabelle articoli.. vorrei senza creare ulteriori tabelle per gestire i tag, creare all'interno di ogni tabella una colonna tag dove inserisco per ogni record le parole chiave separate da virgola.
    ESEMPIO:

    titolo | descrizione | tag
    prova | testo | parola chiave1, parolachiave2, ecc..
    prova | testo | parola chiave1, parolachiave2, ecc..
    prova | testo | parola chiave1, parolachiave2, ecc..
    prova | testo | parola chiave1, parolachiave2, ecc..

    Qualcuno mi può aiutare per creare uno script php che mi permette di estrapolare le 20 parole chiave + inserite nella colonna tag di tutti i record, in modo da ottenere il risultato che vediamo nei vari blog?

    Non saprei da dove iniziare!

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    ti spiego come procederei io...
    salvi in un array unico il contenuto di tutti i tag di tutte le righe della tabella in modo da avere
    $array[0] = tag1riga1
    $array[1] = tag2riga1
    ...
    $array[n] = tagNrigaN
    poi ti crei un'altro array che conterà gli elementi singoli e il numero di volte che sono contenuti
    qualcosa tipo
    codice:
    $ris=Array();
    $esclusi=Array();
    for($i=0; $<count($array); $i++){
    $count=0;
    if(!in_array($array[$i], $esclusi)){//se non ho già eseminato l'elemento procedo
     for($j=$i+1;$j<count($array);$j++){
       if($array[$i]==$array[$j]) $count++;
     }
    array_push($ris, Array($array[$i], $count));
    array_push($esclusi, $array[$i]);
    }
    }
    perfezionando e provando a vedere se funziona ti dovresti ritrovare un array così fatto:
    $ris = Array(Array(tagXrigaX, 2), Array(tagYrigaY, 43), Array(tagZrigaZ, 21));

    ora puoi scegliere tu il modo migliore per orrenere l'output...se un array di array, un array di oggetti, due array distinti uno con i pesi e uno con i tag....sbizzarisciti

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    se le parole chiave sono predefinite, il tuo DB non è normalizzato....

    Se fossero predefinite potresti associare ad ogni articolo un campo boolean tag che è true se la tag è selezionata, false se non lo è...

    il conteggio delle tag è anche più facile, perchè di basta un "select count"

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    mmm grazie delle risposte ragasssi!
    Mi sa' che opterò per una tabella a parte chiamata tag dove ogni parola chiave che inserirò rappresenterà un record della tabella.
    Rivoluziono un po' il progetto, ma mi sembra più facile la gestione, come consigliano tutti.

    Grazie delle risposte in ogni caso..
    mi avete fatto riflettere!

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.