Bestimmte Textteile aus mysql- tabelle hervorheben

PCGamer

Mitglied
Hallo,

ich brauch mal eure Hilfe, da ich nicht so recht weiß wie ich das bewerstelige.

Also folgendes:

Auf einer Webseite sind verschiedene Beiträge in die ausgegeben werden. Sie sind in der MySql- Tabelle "article" gespeichert.
Parallel befindet sich noch auf der Seite ein Lexikon, die Begriffe werden in der Tabelle "lexikon" gespeichert. Die Begriffe stehen in der Spalte "keyword", die Kurzbeschreibung in "def" (die später als Tooltip angezeigt werden sollen) sowie die detallierte Beschreibung in "des".

Was nun passieren soll:

Es soll pro Seite ein Artikel angezeigt werden (schon getan). Es sollen daraufhin alle Wörter die in mein Lexikon (Keywortd) vorkommen hervorgehoben werden. Wenn man draufklickt soll ein Tooltip angezeigt werden wo die Kurzbeschreibung des Begriffes steht (jquery Ajax?) und mittels Link (Weiterlesen) auf meine Lexikonsseite verlink wird, wo die volle Beschreibung angezeigt wird.

Der blanke Text (evt. mit Html- Tags) steht in der PHP Variable $article.

Irgendwie müsste er doch die Variable $article Wort für Wort prüfen ob eine Übereinstimmung mit "keyword" gibt und ein <a href="#" onclick="function("das Wort")"> drumlegen oder? Wie macht man das?

Würde mich über Ratschläge freuen.

PC-Gamer
 
Zuletzt bearbeitet:
Habe hier mal was gebastelt. Ist sicher nicht DIE Lösung aber vielleicht mal ein Anfang.

PHP:
<?php

$article = "Es sollen daraufhin alle Wörter die in mein Lexikon (Keywortd) vorkommen hervorgehoben werden.";
$keyword = array("sollen", "wörter", "lexikon");
$tooltip = array("Kurze Beschreibung für das Wort 'sollen'", "Kurze Beschreibung für das Wort 'Wörter'", "Kurze Beschreibung für das Wort 'Lexikon'");
echo "Originaltext:<br />" .$article;

for ($a = 0; $a < count($keyword); $a++){
	$pos = stripos($article, $keyword[$a]);
	$replace = '<b><a href="#" title="' .$tooltip[$a] .'">' .substr($article, $pos, strlen($keyword[$a])) .'</a></b>';
	$article = str_ireplace($keyword[$a], $replace, $article);
}

echo "<br />";
echo "Neuer Text:<br />" .$article;

?>

Kannst du mal die Datenbank hier einstellen (oder zumindest einen Teil davon) damit man was zum Arbeiten hat.
Hätte da vielleicht auch noch eine Idee wie man den Zugriff auf die DB machen könnte, aber ohne Daten ist es ein bisschen blöd.
 
Danke für deine Hilfe :-). Ich werde morgen 2 ausgedachte Artikel als Datensatz posten und ein paar Begriffe von meinem Lexikon. Leider habe ich jetzt die DB nicht zur Hand.
Wegen dem Tool-Tipps dachte ich, das es mit Javascript gelöst wird und nicht mit PHP. D.h.,PHP soll nur den a- tag mit den onclick-Attribut setzen. In dem onclick-Attribut soll dann die Javascript-Funktion mit dem keyword als Parameter gesetzt werden. So dass ich dann per jquery ein Ajax request senden kann. Ist das nicht komfortabler als alles mit php zu machen?
 
Ajax ist (leider) nicht so mein Ding. Aber wenn doch sowieso per PHP die Formatierung usw. gemacht wird, dann kann/könnte man den Tooltipp doch auch gleich damit machen!?

Vielleicht meldet sich noch jemand zu Wort und bringt noch andere Ideen ein.

Ansonsten geht es dann morgen weiter.
 
Hallo,

sorry irgendwie gibt es Probleme mit der Datenbank, sodass ich nicht an den Daten zur Zeit drankomme :-( Wenn du mir sagen kannst wie ich per PHP ein a- tag mit den entsprechenden Parameter onclick="function("wort") um das Wort liegen kann, hätte ich vielleicht eine Idee wie ich den Tooltip hinbekommen kann (sonst frag ich spezifisch in Javascriptbereich danach).
 
Hallo,

während ich auf die Daten von dir gewartet habe, habe ich noch ein bisschen an meinem ersten Entwurf weitergemacht.

Kannst du mal ein Bild deiner Seite einstellen damit man sieht wie das aufgebaut ist? Was ich auch noch nicht verstehe, ist wie du die Wörter aus dem "Lexikon" mit der jeweiligen Seite und der detailierten Beschreibung verlinken willst.

Gibt es in der Tabelle "lexikon" eine ID oder so was ähnliches oder nimmst du dafür wirklich das jeweilige Wort?

Werden immer alle Wörter des Lexikons angezeigt, egal welcher Artikl gerade zu lesen ist oder gibt es da auch eine Einschränkung?

Gib mir da noch ein paar Infos, dann stelle ich gegen später nochmal was rein.

Gruß Thomas
 
Ja aber "Mein Wort" ist ein Fließtext, sodass PHP aus den Text erstmal das Wort mit übereinstimmungen von mein Lexikon suchen muss. Und nach der Bearbeitung wieder an die Stellte schreiben muss.

Kann ich einfach den ganzen Wörter in ein Array schreiben lassen (wie?) und dann jedes einzelne Wort prüfen lassen?
 
Bis auf die obigen Fragen wär ich schon soweit. Im Moment kann ich gerade nichts schicken aber so in einer guten halben Stunde müsste es wieder gehen.

Vielleicht antwortest du mir bis dahin auch noch, dann könnte ich das noch berücksichtigen.
 
Zurück