Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Contare tag separati da virgola

    Ciao a tutti,
    mi sono letto diversi esempi sui tag clouds pensando che il mio problema fosse simile, invece sono rimasto deluso.

    In pratica devo "semplicemente" sortare dei tag dei miei articoli ( di determinate categorie) che hanno un minimo di corrispondenze. Nel db i tag sono inseriti in un unico campo, separati da virgole.

    Per farla breve vorrei riuscire, per ogni tag, a sapere quanti articoli hanno quel tag, senza ammazzare il DB

    Con questo script faccio un listing di tutti i tag che ho nella categoria SPORT

    Codice PHP:
    <?php
    $arrayTag 
    = array(); 
    $query mysql_query('select tag from $db where sezione = 'sport') or die(mysql_error() ); 
    while($row = mysql_fetch_assoc($query) ) { 
            foreach(explode('
    ,',$row['tag']) as $miotag) 
                $arrayTag[] = trim($miotag); 

    $arrayTag = array_unique($arrayTag); 
    natcasesort($arrayTag); 

    foreach($arrayTag as $tag) { 
    echo "<a target=_blank style='
    text-decoration=none;' href=\"pagina.php?tag=$tag\">$tag</a>
    "; 
    }

    ?>
    Mi piacerebbe però sapere, per ogni tag, quante corrispondenze ha trovato e printare solo quelle che hanno un minimo di 4 corrispondenze.

    Ad esempio:

    • totti (12)
      calcio (11)
      juventus (4)
      del peiro (6)


    E' possibile fare qualcosa di simile senza uccidere il db??? :master:
    Perchè uso Maxthon? | Mi piace questa chat

  2. #2
    explode sul campo... immagino...
    Ciao!

  3. #3
    ehm, in che senso??

    Io faccio già l'explode, solo che dovrei contare quanti elementi sono stati raggruppati nell'array.

    no??? (Purtroppo non sono un grande esperto!)
    Perchè uso Maxthon? | Mi piace questa chat

  4. #4
    Piccolo UP
    Perchè uso Maxthon? | Mi piace questa chat

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Codice PHP:
    $array = array('pippo','poldo','pippo','pippo','pippo','pluto','pluto','pluto','pluto','pippo');
    $array array_count_values($array);

    echo 
    '<pre>';
    print_r($array);

    foreach(
    $array as $k => $v) {
      if(
    $v >= 4
        echo 
    $k.' '.$v.'
    '
    ;


  6. #6
    Grazie Nicola,
    funziona veramente alla grande :-)

    Se posso sfruttare ancora la tua gentilezza
    un'ultima domanda circa questo sorting.

    Posso dare un limite massimo di elementi da sortare??

    Es. vorrei averne al max 30!

    Grazie!
    Perchè uso Maxthon? | Mi piace questa chat

  7. #7
    Codice PHP:
    $array = array('pippo','poldo','pippo','pippo','pippo','pluto','pluto','pluto','pluto','pippo'); 
    $array array_count_values($array); 
    arsort($array);

    echo 
    '<pre>'
    print_r($array); 

    $n 1
    foreach($array as $k => $v) { 
      if(
    $v >= && $n <=30
        echo 
    $k.' '.$v.'
    '

        
    $n++

    Ciao!

  8. #8
    Ciao mortara,
    grazie per il tuo intervento.

    Intendevo dire avere solo i primi 30 risultati.

    Forse con l'array_slice posso farlo??
    Perchè uso Maxthon? | Mi piace questa chat

  9. #9
    Si ok,
    ci sono riuscito proprio con array_slice

    Grazie nuovamente a tutti quanti

    Perchè uso Maxthon? | Mi piace questa chat

  10. #10
    Come ti ho detto ti elenca i 30 risultati con più ripetizioni.
    Prima li ordino con arsort e poi ne stampo a video 30.
    Ciao!

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.