PHP: Hilfe bei TagCloud

Tom G

Angesehenes Mitglied
Guten Morgen!

In einer Datenbank gibt es die Spalte "tags". In dieser Spalte sind tags aufgelistet, jedoch ohne Komma oder sonst eine Trennung (lediglich durch ein Leerzeichen getrennt).

ID | tags
1 | Heute schule musik geld
2 | Sport spaß spiele geld
3 | hobby musik urlaub
4 | freunde liebe musik hunde geduld
...


Wie ist es möglich, mit diesen Voraussetzungen eine TagCloud zu erstellen?
Ich habe schon einige PHP-Codes bei Google gefunden, jedoch keinen der mich wirklich zum Ziel führte.

Vielleicht könnte mir hier ja jemand behilflich sein.

Vielen Dank!
 
Wenn Du die Daten als von mySQL als Array abgerufen hast, kannst Du das relativ einfach bewerkstelligen:
CODE <?php
$arr[] = 'Heute schule musik geld';
$arr[] = 'Sport spaß spiele geld';
$arr[] = 'hobby musik urlaub';
$arr[] = 'freunde liebe musik hunde geduld';

foreach ($arr as $value) {
   //Den String bei jedem Leerschlag aufteilen
   $arr2 = split(' ',$value);
   //Jeden einzelnen Tag in das Array $tags speichern
   foreach ($arr2 as $tag){
     $tags[] = $tag;
   }
}
//Die Doppelten Tags entfernen
$tags = array_unique($tags);
// Zeige das Array mit den Tags an
print_r($tags);
?>


Nun hast Du alle Tags einzeln in einem Array.
Ich hoffe, das hilft Dir weiter.
 
Danke!

Wirklich weitergeholfen hat es mir noch nicht. Es funktioniert zwar, jedoch bringt es mich nicht weiter auf meinem Weg zu einer TagCloud (oder zumindest sehe ich den Weg nicht).


Hier meine bisherige Datenbankabfrage:

CODE $sql = "SELECT tags FROM posts";
$result = mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
$tagcloud[]= $row["tags"];
}
 
Folgendes dürfte funktionieren:

CODE <?php
$sql = "SELECT tags FROM posts";
$result = mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
//Den String bei jedem Leerschlag aufteilen
$arr = split(' ',$row["tags"]);
//Jeden einzelnen Tag in das Array $tags speichern
foreach ($arr as $tag){
$tags[] = $tag;
}
}
//Die Doppelten Tags entfernen
$tags = array_unique($tags);

// Zeige das Array mit den Tags an
foreach ($tags as $tag) { ?>
<a href="http://www.deineseite.xyz/?tag=<? print urlencode($tag);?>"</a><? print $tag;?></br>
<?}
?>


Allerdings solltes Du dich vielleicht erst intensiv mit etwas PHP Lernstoff auseinandersetzten.
Ohne Verständnis, was da passiert, kann es schnell gefährlich werden. Beispiel: SQL injection
 
Super! Vielen Dank!

Jedoch fehlt hier nun die Darstellung mit unterschiedlichen Schriftgrößen (je nach Häufigkeit) ...
 
Falls Du dich mit PHP nicht auseinandersetzen willst, gibt es sicher genügend Programmierer, welche Dir die Aufgabe gegen Bezahlung erledigen.
wink.gif
 
Vielen Dank für deine Hilfe und dein Scriptbeispiel!

Habe nun eine funktionierende TagCloud.
smile.gif
 
Zurück
Oben