Tag cloud

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Roel -

Roel -

12/01/2012 21:03:40
Quote Anchor link
Bedankt, deze werkt helemaal goed!
 
PHP hulp

PHP hulp

25/04/2024 13:09:22
 
Elwin - Fratsloos

Elwin - Fratsloos

12/01/2012 21:35:59
Quote Anchor link
Op zich is jouw code gewoon te combineren met mijn berekening. Ik heb het allemaal uitgebreid uitgelegd in een tutorial. Daar staat ook een voorbeeld met jouw code.

Maar omdat we hier de discussie aangeslingerd hebben, ook hier de code.

Ik gebruik jouw query die in dit topic staat, ik zet op dezelfde manier de $aTags-array, $laagste en $hoogste en ik loop op bijna dezelfde manier door de resultaten van de query: ik gebruik daar andere data van de query, wat logisch is. Vanaf daar is alles hetzelfde als in mijn eerdere code.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
// Query om de tags en het gebruik op te halen
$sql = "SELECT
            tag,
            COUNT(tag) AS aantal
        FROM
            tags
        GROUP BY
            tag
        ORDER BY
            tag ASC"
;
$res = mysql_query($sql);

$aTags = array(); // Array om de tags in op te slaan
$laagste = null; // Var met het laagste aantal kliks
$hoogste = 0; // Var met het hoogste aantal kliks

if($res  !== false) {
    while($row = mysql_fetch_assoc($res)) {
        // Laagste bepalen
        if($laagste == NULL) $laagste = $row['aantal'];
        else if($laagste > $row['aantal']) $laagste = $row['aantal'];
        
        // Hoogste bepalen
        if($row['aantal'] > $hoogste) $hoogste = $row['aantal'];
        
        // Toevoegen aan de array
        $aTags[] = array('tag' => $row['tag'], 'aantal' => $row['aantal']);
    }
}


// Array door elkaar gooien
shuffle($aTags);

$aStap = array(); // Lege array om de stappen in te bewaren
$maxStappen = 5; // Er zijn dus 5 CSS-classes

$stappen = floor(($hoogste-$laagste) / $maxStappen); // Uitrekenen hoeveel er tussen stappen zit
for($i=1;$i<=$maxStappen;$i++) $aStap[$i] = $i*$stappen+$laagste; // En de array vullen met het begin van de stap

echo '<div class="tagcloud">'.PHP_EOL;
foreach($aTags as $tag) {
    $style = 'tag'.$maxStappen; // standaard de grootste
    for($i=1;$i<=$maxStappen;$i++) {
        if($tag['aantal'] <= $aStap[$i]) {
            $style = 'tag'.$i;
            break;
        }
    }

    echo '<a href="#" class="'.$style.'">'.$tag['tag'].'</a>'.PHP_EOL;
}

echo '</div>'.PHP_EOL;
?>


In bovengenoemde tutorial leg ik stap-voor-stap uit wat er gebeurt.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.