Zurück   PSD-Tutorials.de > Webbereich > PHP und andere Scriptsprachen


Antwort
 
Themen-Optionen
Alt 13.06.2012, 21:27   #1 Nach oben scrollen
Newbie
Newbie
 
Benutzerbild von Espressolia
 

Registriert seit: 04.11.2009
Ort: Sachsen
Beiträge: 65
Kamera: meine Augen :-)
Verwendet: Photoimpakt, Swishmax und diverse andere

Bestimmte Textteile aus mysql- tabelle hervorheben


Hallo iher,

ich habe eine Seite wo verschiedene Artikel aus der Datenbank angezeigt wird.
Parallel habe ich ein Lexikon programmiert wo verschiedene Begriffe erklärt werden.

Jetzt möchte ich, dass PHP die ganzen Wörter durchläuft und prüft ob das Wort in Lexikon vorkommt. Wenn ja, soll er um das Wort ein a- Tag liegen, um später per Javascript per Ajax ein Tooltip mit derErklärung zu erzeugen.

Mein Code:
PHP-Code:
$res $GLOBALS["TYPO3_DB"]->exec_SELECTquery("keyword, def""tx_lextool_lexikon");
  
$lex_num $GLOBALS["TYPO3_DB"]->sql_num_rows($res);
   for (
$a 0$a $lex_num$a++){
   
$row $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res);
   
$word $row["keyword"];
   
$def $row["def"];
   
$search[] = "/$word/";
  
# $replace = "<a class='lexi' title='$def' target='_blank' title='$def' style='color:#fff'>\\0</a>";
  
$replace "<a href='$word'>$word</a>";
   
#echo "re $replace";;
   #$article .= preg_replace($search, $replace, $article);
    
}
    
$output preg_replace($search$replace$article);
  echo 
$output
$article ist der Text von der DB.
$output ist aber leer

Kann mir jemand helfen?

Danke im vorraus
Espressolia
  Mit Zitat antworten


Alt 13.06.2012, 22:40   #2 Nach oben scrollen
Posting-Frequenz: 14µHz
Premium-SupporterPremium-SupporterPremium-SupporterPremium-SupporterPremium-Supporter
 
Benutzerbild von Duddle
 

Registriert seit: 03.02.2006
Ort: Dresden
Beiträge: 3.225

Ist $article irgendwo vor dem Code-Ausschnitt definiert? Wenn nein, ist es leer und damit auch der Parameter vom preg_replace() und damit $output.

Abgesehen davon wird $replace bei jedem Durchgang überschrieben, da passiert am Ende also sowieso nicht viel.


Duddle
__________________
»To a cosmologist, a hundred thousand light-years rounds down to zero.« - RobotRollCall
  Mit Zitat antworten
Alt 14.06.2012, 07:49   #3 Nach oben scrollen
Newbie
Newbie
Themenstarter
 
Benutzerbild von Espressolia
 

Registriert seit: 04.11.2009
Ort: Sachsen
Beiträge: 65
Kamera: meine Augen :-)
Verwendet: Photoimpakt, Swishmax und diverse andere

Danke für die Antwort.
$article wird vor dem Codeabschnitt aus einer DB, wo die ganzen Artikel stehen, ausgelesen. Wenn ich echo article ausgebe, wird der ganze Artikel auch ordnungsgemäß ausgegeben - nur ohne Hervorhebung der Wörter, die um Lexikon vorkommen. Liegt das daran, das $article html-tags beinhaltet, (wie z.B. <p></p>)?
  Mit Zitat antworten
Alt 14.06.2012, 08:19   #4 Nach oben scrollen
Prof. Dr. WIP
HelperHelper
 
Benutzerbild von Talirion
 

Registriert seit: 10.10.2004
Ort: Dresden
Beiträge: 635
Kamera: Nikon D800 & D300s
Verwendet: CS 6 extended; LR4.1; WACOM

ich bin mir nicht ganz sicher, aber versuchs mal so....

PHP-Code:
$res $GLOBALS["TYPO3_DB"]->exec_SELECTquery("keyword, def""tx_lextool_lexikon");
  
$lex_num $GLOBALS["TYPO3_DB"]->sql_num_rows($res);
   for (
$a 0$a $lex_num$a++){
       
// hold dieser befehl immer nur eine Row oder alle gefundenen?
       
$row $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res);
       
// wenn alle dann sollte er vor der For stehen und hier dann z.B.:
       // $row[$a]["keyword"];
       
$word $row["keyword"];
       
$def $row["def"];
       
// ggf. das Keyword noch htmlencoden :) (ä/ö/... usw.)
       
$search $word;
       
$replace " <a href='$word'>$word</a> ";
       
$article str_replace($search$replace$article);
    }
    
$output =  $article;//preg_replace($search, $replace, $article);
  
echo $output
__________________

Kennst du schon meine FB-Seite? https://www.facebook.com/myMBFoto
Visit me on DA: http://talirion.deviantart.com/

Geändert von Talirion (14.06.2012 um 08:41 Uhr).
  Mit Zitat antworten
Alt 14.06.2012, 09:05   #5 Nach oben scrollen
Posting-Frequenz: 14µHz
Premium-SupporterPremium-SupporterPremium-SupporterPremium-SupporterPremium-Supporter
 
Benutzerbild von Duddle
 

Registriert seit: 03.02.2006
Ort: Dresden
Beiträge: 3.225

Stichwort: debuggen. Lass dir vor der Schleife alle relevanten Variablen ausgeben (mit echo und print_r()), in jedem Schleifendurchgang und danach. Dann siehst du wann etwas drinsteht, dass das preg_replace() stört.


Duddle
__________________
»To a cosmologist, a hundred thousand light-years rounds down to zero.« - RobotRollCall
  Mit Zitat antworten
Alt 14.06.2012, 17:35   #6 Nach oben scrollen
Newbie
Newbie
Themenstarter
 
Benutzerbild von Espressolia
 

Registriert seit: 04.11.2009
Ort: Sachsen
Beiträge: 65
Kamera: meine Augen :-)
Verwendet: Photoimpakt, Swishmax und diverse andere

Hi,

Danke für die Antworten. Ich hab jetzt gefunden was preg_replace störte, in ein Datensatz war nach ein Keyword eine einzelne ")". Jetzt geht es wie es gehen soll
  Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Tabelle mit MySQL-Abfrage replay_ PHP und andere Scriptsprachen 4 01.05.2012 10:42
Problem mit Mysql-Tabelle ausgeben webarchitekt PHP und andere Scriptsprachen 3 30.11.2010 08:37
Mysql Tabelle mit php ausgeben charlie157 PHP und andere Scriptsprachen 2 18.11.2010 14:40
MySQL-Tabelle Hintergrundbild Ben78 PHP und andere Scriptsprachen 7 28.02.2010 06:01
Zeilen von Tabelle aus MySQL Löschen No0oB PHP und andere Scriptsprachen 9 21.03.2006 09:50