Funktion -> Wert aus einer DB
Andavos
- php
Hallo,
also ich lese einen Text ein. Danach lasse ich diesen Text ersetzten (Bestimmte Wörter, durch Wörter aus einer DB).
Das mache ich alles mit str_replace
Diese Veränderungen sind in einer Funktion gespeichert.
Der Script sieht so aus:
//DB Verbindung
function replace_uri ($tbhtml)
{
$tbhtml = str_replace("[id]", "$datenbank->id", $tbhtml);
return $tbhtml;
};
$text = "Hallo [id] wie gehts?";
$text = replace_uri ($text);
echo $text;
wenn ich das mache, erhalte ich als Ausgabe:
Hallo wie gehts?
Das id wurde nicht ersetzt, sondern ist verschwunden, warum?
Das mit der DB geht über und unter der funktion, aber nicht in der funktion, warum?
Und wie kann ich das lösen?
MFG
Andavos
Moin Andavos,
Einer Funktion mußt Du immer alle Variablen mitgeben.
Sonst gibt es diese in der Funktion nicht.
als in die kalmmer noch die ID rein.
TomIRL
Hallo,
wie meinst du das?
Wenn ich $datenbank->id durch 10 ersetze, geht alles.
Aber muss in in der funktion eine Verbindung zu DB machen?
MFG
Andavos
Nö Du hast die Id doch vor der Funktion vorliegen oder nicht?
beim Funktionsaufruf einfach die Variable mit in die Klammer schreiben.
Alls Beispiel:
Aus der Datenbank kommt als Variable $d="doof";
Und $d willst Du durch blöd ersetzen also:
function ersetzen ($datei, $d)
{
Hier ersteze ich $d=doof;
Durch blöd
}
Vielleicht verstehe ich auch etwas falsch.
TomIRL
Hallo,
ne
Die Funktion sieht so aus:
function replace_uri ($tbhtml)
{
$tbhtml = str_replace("[id]", "$datenbank->id", $tbhtml);
return $tbhtml;
};
Mit $datenbank->id frage ich das Feld id aus meiner Datenbank ab.
Sollte ich das so ändern:
$id = "123";
function replace_uri ($tbhtml)
{
$tbhtml = str_replace("[id]", "$id", $tbhtml);
return $tbhtml;
};
??
Das wäre aber zu umständlich, dann müsste ich das 30 mal machen :D
MFG
Andavos
Moin
*Den Andavos von der Leitung schubs auf der er gerade steht!
Vielleicht in dem Fall mal die $datenbank mitgeben?
So vielleicht?
function replace_uri ($tbhtml, $datenbank)
Gucke mal ansonsten muß ich mal in die tiefen meines Manual abtauchen.
TomIRL
Hallo,
ich habs mal so gemacht:
function ersetzen($tbhtml, $de_row) //Zeile 2
{
$tbhtml = str_replace("[textgroesse]", "$de_row->textgroesse", $tbhtml);
return $tbhtml;
}
$tbhtml = "Mein [textgroesse] Text";
$tbhtml = ersetzen($tbhtml);
echo $tbhtml;
Als Fehlermeldung bekomme ich
Warning: Missing argument 2 for ersetzen() in C:\apache\htdocs\php\cw_book\index.php on line 2
Weiß du weiter?
MFG
Andavos
Weiß du weiter?
ja,
$tbhtml = ersetzen($tbhtml, $de_row)
Hallo,
ahh danke es geht :)
MFG
Andavos