Willkommen in der Webstatt Zum Webstatt Blog und Stories
Sheep Sheep am 10.01.07 18:12

[SIZE=16]Wortwolken[/SIZE]
[IMG]http://upload.wikimedia.org/wikipedia/commons/b/b3/Netbib_tag_cloud.jpg[/IMG]

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.

netcup.de Warum gibt es hier Werbung?
Chrisber am 10.01.07 18:14

Der link funzt net.
Aber danke :D

Sheep Sheep am 10.01.07 18:16

Quote
Original von Chrisber
Der link funzt net.
Aber danke :D


Lass einem doch noch Zeit zu editieren ;)

fish fish am 10.01.07 19:01

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

abu am 12.01.07 21: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') != 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

web4 am 22.01.07 15: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 idee:)
gruss

der_nic der_nic am 22.01.07 16:34

Quote
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";

web4 am 22.01.07 16:53

oups stimmt ja:D
aber das , brauchts übrigens nicht:) *smartarse* =) nein vielen dank!

der_nic der_nic am 22.01.07 17:36

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

ricdes am 30.04.07 21:51

hi Leute,

ich benutze dieses Tagcloud script auf http://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!

[COLOR=red]// edit by Michael
Link korrigiert. Durch das Komma ging der Link nicht[/COLOR]

danieL danieL am 01.05.07 11: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('');
$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");
echo "<a href=\"suche.php?q=$kurl\" style=\"font-size: {$size}em; font-weight: {$weight}\">$k</a>&nbsp;&nbsp;\n";
}

?>

ricdes am 01.05.07 15:48

hi :)

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

mfg

danieL danieL am 01.05.07 16: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.

ricdes am 01.05.07 22: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 :)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt