Hallo zusammen,
so, hatte jetzt wieder etwas Zeit mich mit dem Problem Tag Clouds
auseinanderzusetzen.
Da ich sehr lange im Netz nach Tipps, Hinweisen und Lösungen gesucht hatte, die ich für meine Anforderungen brauchte
und sie leider nicht fand. Möchte ich, falls jemand anderes auch nach einer Lösung sucht, mein Ergebnis hier darstellen.
steffenk hatte mich da unheimlich weitergeholfen, trotzdem dauerte es noch etwas, bis ich eine einigermaßen
gebrauchbare Lösung gefunden hatte, ob es die beste, na ja, ich bin kein PHP Programmierer aber es funktioniert.
Zur Erinnerung:
Ich wollte Suchbegriffe (von Google Anfragen) in einer Wortwolke visualisieren.
Die Begriffe stehen in einer Datenbank (als $stichworte), die Häufigkeit der
Verwendung dieser Begriffe hat ein Feld ($val).
Jetzt sollen Sie über eine Datenbankabfrage ausgelesen werden, was für mich auch kein Problem war.
PHP-Code:
// Ausgabe außerhalb der Schleife
echo "<fieldset id=\"tagcloud\"><legend>Top Suchbegriffe:</legend>";
/***********************/
/* Datenbankverbindung */
/***********************/
$serverid = @mysql_connect("127.0.0.1", "root", "");
mysql_select_db("test")
or die("Die Datenbank ist zur Zeit nicht erreichbar!");
/*****************************/
/* Abfrage der DB */
/*****************************/
$abfrage = " SELECT * FROM `tagcloud` ORDER BY id ASC LIMIT 0 , 20 ";
$result = mysql_query($abfrage);
while($row=mysql_fetch_assoc($result)) {
//Der Suchbegriff
$stichworte = $row['stichworte'];
// der Wert des Suchbegriffes
$val = $row['val'];
// ausgabe des Links
$c .= '<a target="_blank" href="http://www.google.de/search?q=site:'.$Domain.' '.urldecode($row['stichworte']).'" class="'.$cssClass.'" title="Suchbegriffe zur Website: '.$row['stichworte'].'" onfocus="if(this.blur)this.blur()" >'.$row['stichworte'].",</a> \n";
}
echo $c;
echo"</fieldset>";
// ... Auszug, php Script ende...
Die Gestaltung der Stichworte im TagCloud wollte ich über CSS realisieren.
Da tat ich mir etwas schwer mit, hatte einfach ne Denkblockade, weiß auch nicht ob man es hätte anders Lösen
können, für Hinweise und Tipps, bin ich dankbar.
In der oben beschriebenen Abfrageschleife kommt noch die CSS Abstufung:
PHP-Code:
// es sollenn 9 css stufen geben
$cssValue= round($val/9*100);
for ($i=0;$i<$cssValue;$i++)
{
if($i>=5){
$classValue=1;
}
if($i>=18){
$classValue=2;
}
if($i>=27){
$classValue=3;
}
if($i>=36){
$classValue=4;
}
if($i>=45){
$classValue=5;
}
if($i>=54){
$classValue=6;
}
if($i>=60){
$classValue=7;
}
if($i>=70){
$classValue=8;
}
if($i>=90){
$classValue=9;
}
}
// css string zusammengesetzt
$cssClass='tag'.$classValue;
Das CSS ist extern:
Code:
.tag9 { font-size: 34px; color: #1B5E8D;}
bis...
.tag1 { font-size: 12px; color: #86BCE2;}
Da ich hier immer nur Auszugsweise das Script darstellen wollte, um hier nicht ein zu langes Script reinstellen zu müssen,
ermüdet die Augen (grins), hoffe ich dass beim kopieren alles wesentliche mitging und es noch verständlich ist.
Bei der For-Schleife, habe ich mir da ganze wie eine Prozent Scala (von 100 bis 10) vorgestellt.
Es später dann doch visuell nach der Ausgabe (im HTML) überprüft und nachkorrigiert. So in etwa.
di