ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
969
969
EMPFEHLEN
-
28.09.05 17:54 #1
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 :
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:PHP-Code:...
$row = mysql_fetch_object($result);
$text = $row->$text;
echo '
<div class="box3"> //CSS
<p>'.$text.'</p>
</div>';
"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
-
Hi,
Mhh, soweit Ich weiß geht das auch nicht.
Aber du könntest z.b. bei der ausgabe mit str_replace() nach $wert im Text suchen, und den dann austauschen lassen.
Natürlich könntest du auch den auszutauschenden Teil z.b. "{Wert}" nennen, und den dann eben austauschen.PHP-Code:...
$row = mysql_fetch_object($result);
$text = $row->$text;
$text = str_replace("\$wert", $wert, $text);
echo '
<div class="box3"> //CSS
<p>'.$text.'</p>
</div>';
Sonst fällt mir dazu leider nix mehr ein
!
gruß kevin
-
Hey!
Dein Problem ist, das du falsch denkst. Du liest aus der Datenbank einen String (Datentyp) aus. Diesem kannst du nicht ohne weiteres sagen, das da noch ne Variable steht, die geändert werden soll.
Deine Lösung ist ein Platzhalter und die Funktion str_replace() (-> siehe PHP Manual). Auch kannst du das Problem mit regulären ausdrücklen lösen!
Hier ein Beispiel zur Erläuterung:
So, bei Fragen, einfach posten, aber ich denke es sind keine mehr offen!PHP-Code:$deineVariable = 8; // Anzahl der richten Antworten (kann errechnet oder sonst was werden)
$loesung = "Sie haben %Platzhalter% Aufgaben richtig gelöst";
$loesung = str_replace("%Platzhalter%", $deineVariable, $loesung);
echo $loesung;
// gibt "Sie haben 8 Aufgaben richtig gelöst" aus
Falls doch, werden dir hier sicherlich noch mehr Leute helfen können
Gruß!
// Edit: Huch, da war ich wohl zu langsam *g*man wird erwachsen ....
-
Hi,
Naja, lieber langsamer aber dann besser erklärt
.
gruß kevin
-
28.09.05 19:41 #5
Super!
Vielen dank ihr beiden!
Damit werde ich es nachher einmal ausprobieren. Sollte ich es nicht hinbekommen (wovon ich einmal nicht ausgehe) melde ich mich noch einmal zu Wort. Ansonsten markiere ich den Thread später als "beantwortet".
Was genau da nun der Unterschied ist (Platzhalter vs. regulärer Ausdruck) habe ich allerdings noch nicht verstanden. Bzw. was genau ein regulärer Ausdruck ist.Deine Lösung ist ein Platzhalter und die Funktion str_replace() (-> siehe PHP Manual). Auch kannst du das Problem mit regulären ausdrücklen lösen!
-
Reguläre Ausdrücke sind recht kryptische Suchmuster. Hier ein Tutorial: http://www.all-community.de/art277.htm
Aber ich denke das geht zu weit für dein Problem. Ist auch nicht gerade einfach zu verstehen, wenn man noch nicht sooooooooo lange in der Materie steckt
- nicht übel nehmen!
Gruß!man wird erwachsen ....
-
28.09.05 23:47 #7
Nochmals vielen Dank für die einfache Erklärung. Es hat genauso
auf Anhieb funktioniert.$deineVariable = 8; // Anzahl der richten Antworten (kann errechnet oder sonst was werden)
$loesung = "Sie haben %Platzhalter% Aufgaben richtig gelöst";
$loesung = str_replace("%Platzhalter%", $deineVariable, $loesung);
echo $loesung;
// gibt "Sie haben 8 Aufgaben richtig gelöst" aus
Ich hatte zwar schon mal von str_replace gehört und es vielleicht in anderem Kontext schon verwendet, aber in diesem Zusammenhang wäre ich nicht so schnell darauf gekommen.
-
Funktionieren würde das ganze auch gut mit der sprintf-Funktion...
Das wäre dann in diesem Fall wie folgt:
Sowas ist z.B. praktisch, wenn man mit definierten Strings arbeitet. Auf jeden Fall mal ein Augenwurf wert, für ähnliche Vorhaben!PHP-Code:$richtig = 8; // Anzahl der richten Antworten (kann errechnet oder sonst was werden)
$gesamt = 10; // Anzahl der gesamt möglichen Antworten
$loesung = "Sie haben %d von %d Aufgaben richtig gelöst"
echo sprintf($loesung, $richtig, $gesamt);
Ähnliche Themen
-
Datenbank auslesen und ausgeben mit Berechnung
Von babuin im Forum Coders TalkAntworten: 2Letzter Beitrag: 04.05.10, 08:48 -
JS-variable (text) dynamisch ausgeben ohne input-Feld
Von Grille im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 04.02.08, 17:49 -
Datei auslesen, und aus ausgelesenem Variable ausgeben
Von Sebigf im Forum PHPAntworten: 1Letzter Beitrag: 28.01.06, 12:57 -
Text aus Datenbank auslesen und bestimmte anzahl von wörtern ausgeben
Von bensky im Forum PHPAntworten: 5Letzter Beitrag: 27.04.05, 11:08 -
Variable auslesen und in checkbox ausgeben ?
Von Webber im Forum PHPAntworten: 5Letzter Beitrag: 27.01.02, 19:51





Zitieren
Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen