Webstatt.org - Community seit 2006 - 2012 (2024?)

Wortwolke bzw. Tagcloud [Workshop/Tutorial/Snippet]

Avatar user-297
10.01.2007 17:12

Wortwolken


Wer schon immer wissen wollte, wie diese Art von Listen mit einzelnen Vorhebungen zu realisieren ist, kuckt hier

Das Tutorial dort zeigt die Basis dazu. Anhand der Kommentare kann man das Script noch erweitern bzw. anpassen.

Fachabi 2007
user-149
10.01.2007 17:14

Der link funzt net.
Aber danke Fettes Grinsen

Avatar user-297
10.01.2007 17:16

Original von user-148ber
Der link funzt net.
Aber danke Fettes Grinsen


Lass einem doch noch Zeit zu editieren zwinkern

Fachabi 2007
Avatar user-180
10.01.2007 18:01

zu useability von tagclouds: http://www.designtagebuch.de/labels/Trend.html

may the force be with you. but mostly with me.
user-115
12.01.2007 20:55

Hab noch ein altes Script auf der Platte gefunden:

// begin:code seiten inhalt in $content schreiben

function maxhits() {

$sql = "SELECT MAX(hits)AS count FROM `bsnx_klicks`";
$result = mysql_query($sql) ;
if ($row = mysql_fetch_array($result)) {
return $row['count'];
}
}

function topt($rcount, $rmax, $offset) {

return round(($rcount / $rmax) * 12)+$offset;

}

$max = maxhits();

$sql = "SELECT * FROM `bsnx_klicks`";
$result = mysql_query($sql) ;
$array = array();
while($row = mysql_fetch_array($result))
{
//$row['href']
//$row['hits']
if (stristr($row['href'], '.zip'zwinkern != false) {
$path = explode('/', $row['href']);
$file = $path[sizeof($path)-1];
array_push($array, array('id'=> $row['id'],'hits' => $row['hits'],'href' => $file));
}
}

$result = '<div style="text-align:center; background-image:url(http://bsnx.net/img/bg_tag.gif); border:1px #D0D0FF solid; padding-top:10px; padding-bottom:10px;">';
for ($i=0; $i<sizeof($array); $i++) {

$href = "http://bsnx.net/web/link/".$array[$i]['id']."/";
$result .= '&nbsp;<a style="font-size:'.topt($array[$i]['hits'], $max, 12).'pt;" href="'.$href.'">'.$array[$i]['href'].'</a><wbr>&nbsp;';

}
$result .= '</div>';

$content = '<h1>Downloads</h1>'.$result;

// end:code

user-344
22.01.2007 14:24

das von sheep gefundene skript ist wirklich einfach gehalten - kanns nur empfehlen. Ich habs gerade kurz getestet...

jedoch gibt es ein kleines problem.
wie kann ich folgendem query sagen, dass er 100 BY RAND() auslesen soll?


$query = "SELECT thing AS tag, COUNT(id) AS quantity
FROM `tagcloud`
GROUP BY thing
ORDER BY thing ASC";


hab schon alles mögliche versucht... ohne erfolg.
jemand eine ideelächeln
gruss

Avatar user-162
22.01.2007 15:34

dass er 100 BY RAND()

100 Stück per Zufall auswählen?


$query = "SELECT thing AS tag, COUNT(id) AS quantity
FROM `tagcloud`
GROUP BY thing
ORDER BY RAND() LIMIT 100";

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-344
22.01.2007 15:53

oups stimmt jaFettes Grinsen
aber das , brauchts übrigens nichtlächeln *smartarse* =) nein vielen dank!

Avatar user-162
22.01.2007 16:36

welches , :O??? Ich seh da keines frech *schnell wegmach*

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-291
30.04.2007 19:51

hi Leute,

ich benutze dieses Tagcloud script auf www.clipcrawl.com, hab da aber das Problem, dass wenn ich
$query = "SELECT thing AS tag, 
COUNT(id) AS quantity
FROM my_table
GROUP BY thing
ORDER BY quantity ASC
LIMIT 50";


eintippe, er mir ganz einfach 50 tags anzeigt, die dann aber alle genau gleich sind.

wie muss die Sql query zur eingabe der daten (weil da hab ich auch probleme) und dann der select befehl sein?

Mfg und THX!

// edit by user-251el
Link korrigiert. Durch das Komma ging der Link nicht

Avatar user-159
01.05.2007 09:54

Hab diesen Code mal gefunden, seit dem liegt er bei mir auf der Festplatte.

<?php

$abfrage = "SELECT interessen, interessen2, interessen3 FROM tabelle";
$result = mysql_query($abfrage);

while ($row = mysql_fetch_array ($result)) {
$data[] = $row['interessen']."\n".$row['interessen2']."\n".$row['interessen3'];
}

$data = implode('',$data);

// Woerter splitten
$words = preg_split("/\n/", $data);
$acv = array_count_values( $words );

// Nicht erwuenschte Woerter loeschen
$bannedwords = array(''zwinkern;
$i = 0;
foreach($acv as $k=>$v) {
if (!array_search(strtolower($k),$bannedwords) and eregi("[a-zA-Z]",$k) and $i<=40 and strlen($k)>2) {
if (isset($new_acv[strtolower($k)] )) {
$new_acv[strtolower($k)] += $v;
} else {
$new_acv[strtolower($k)] = $v;
}
$i++;
}
}

// Alphabetisch sortieren
ksort( $new_acv );

// Clouds erstellen
foreach( $new_acv as $k=>$v) {
$size = $v*1;
$weight = $v*4;

if ($size > 4) {
$size = 4;
}
if ($weight > 50) {
$weight = 50;
}

$kurl = urlencode("$k"zwinkern;
echo "<a href=\"suche.php?q=$kurl\" style=\"font-size: {$size}em; font-weight: {$weight}\">$k</a>&nbsp;&nbsp;\n";
}

?>

user-291
01.05.2007 13:48

hi lächeln

danke, doch das script habe ich ja schon implementiert.. habe nur noch probleme mit dem sql ... hast du da ne ahnung?

mfg

Avatar user-159
01.05.2007 14:37

Du kannst ja nicht über SQL die Schriftgröße bestimmen, die die Links später haben sollen, das musst du schon über PHP machen.

Du musst ja die Beliebtheit oder was auch immer in der Datenbank speichern und dir daraus dann die Schriftgröße errechnen, je nachdem in welchem verhältnis die Zahlen zueinander stehen.

user-291
01.05.2007 20:30

naja, wie kann ich denn das bestehende so verändern (hab das script vom mutterpost) das er mir auch die richtigen posts anzeigt? weil er rechnet das so, dass wenn einige begriffe mehrmals vorhanden sind in der db, er sie gross darstellt
das einzige was ich will, ist das er die anzeige auf 50 teile begrenzt aber dennoch die richtigen grössen zeigt... was derzeit nicht der fall ist -> siehe clipcrawl.com

danke lächeln