PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Text & Variable aus Datenbank auslesen und ausgeben (http://www.selfphp.de/forum/showthread.php?t=11466)

Don Stefano 28.09.2005 19:41:55

Text & Variable aus Datenbank auslesen und ausgeben
 
Hallo zusammen,

ich habe ein Problem, von dem ich nicht mal weiß, ob es zu lösen ist:

Ich habe in einer MySQL Datenbank eine Tabelle mit verschiedenen Texten, die unter bestimmten Bedingungen ausgelesen und am Bildschirm angezeigt werden.

Nun soll dieser Text mittendrin auch den Wert einer Variable ausgeben:

Bsp: Der Text könnte lauten:

"Herzlichen Glückwunsch. Sie haben 8 Aufgaben richtig gelöst."

Nur kennt der Datenbanktext den Wert "8" nicht, da dieser erst in einem Skript berechnet wird. Mal angenommen die Variable, die diesen Wert enthält lautet $wert.

Nun hätte ich gerne den Text in der Datenbank etwa wie folgt:

""Herzlichen Glückwunsch. Sie haben $wert Aufgaben richtig gelöst."

so dass dann beim auslesen und anzeigen auf dem Bildschirm

"Herzlichen Glückwunsch. Sie haben 8 Aufgaben richtig gelöst."

erscheint.

Das Feld in der Datenbank ist als "text" definiert. Ausgelesen und ausgegeben wird der Text mit :

PHP-Code:

...
    
$row mysql_fetch_object($result);
        
$text $row->$text;
     
      echo 
'
       <div class="box3"> //CSS
       <p>'
.$text.'</p>  
       </div>'


Alle erdenklichen Arten die Variable $wert dabei zu berücksichtigen scheitern leider. Egal ob ich "Sie haben $wert Aufgaben", "Sie haben .$wert. Aufgaben" oder "Sie haben ':$wert.' Aufgaben" in die Tabelle schreibe, die Ausgabe lautet dann entsprechend:

"Herzlichen Glückwunsch. Sie haben .$wert. Aufgaben richtig gelöst."

Was mache ich falsch? Wie muss die Variable in der Datenbank stehen? Oder ist das Ganze etwa gar nicht möglich?

Vielen Dank für jede Hilfe

Valentin 28.09.2005 19:47:02

AW: Text & Variable aus Datenbank auslesen und ausgeben
 
Hallo,
du must die PHP befehle ausführen in dem Text http://de2.php.net/manual/en/function.eval.php .... was allerdings schlecht ist, da man dann alle möglichen PHP befehle ausführen kann .... du kannst auch es mit print ausgeben und es so machen
print($text,$wert);

Wobei der Text nicht "Herzlichen Glückwunsch. Sie haben .$wert. Aufgaben richtig gelöst." heißen sollte, sondern "Herzlichen Glückwunsch. Sie haben %d Aufgaben richtig gelöst."

MfG
Valentin

Serp 28.09.2005 20:18:59

AW: Text & Variable aus Datenbank auslesen und ausgeben
 
Mit print kommst du da aber nicht sonderlich weit, was du meinst ist denk ich eher printf().

Valentin 28.09.2005 20:41:34

AW: Text & Variable aus Datenbank auslesen und ausgeben
 
Ich war mir nicht mehr ganz sicher ob es print() oder printf() war, da ich es selten benutze, danke für die Korrektur ;)

MfG
Valentin

xabbuh 28.09.2005 21:09:44

AW: Text & Variable aus Datenbank auslesen und ausgeben
 
Der andere Weg wäre mit str_replace() oder regulären Ausdrücken bestimmte Teile aus dem Text durch andere Werte zu ersetzen.

Don Stefano 29.09.2005 00:13:58

AW: Text & Variable aus Datenbank auslesen und ausgeben
 
Danke, jetzt weiß ich schon mal wonach ich gucken muss und kann etwas herumprobieren.

Melde mich später wieder, wenn ich es hinbekommen habe.

Don Stefano 29.09.2005 00:47:18

AW: Text & Variable aus Datenbank auslesen und ausgeben
 
Folgendermaßen funktioniert es mit strg_replace:

PHP-Code:

 $wert 8// Anzahl der richten Antworten (kann z.B. errechnet werden)

  
$loesung "Sie haben %Platzhalter% Aufgaben richtig gelöst"; (der ausgelesene Text aus der Datenbank)

  
$loesung str_replace("%Platzhalter%"$wert$loesung);

  echo 
$loesung// gibt "Sie haben 8 Aufgaben richtig gelöst" aus 

Ich muss allerdings dazu sagen, dass mir dabei jemand in einem anderen Forum noch geholfen hat. Die Ausführungen dazu unter strg_replace hätte ich wohl alleine (als Autodidakt) nicht so leicht nachvollzogen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:33:43 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.