Andavos: Funktion -> Wert aus einer DB

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

--
http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  1. 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

    1. 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

      --
      http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
      1. 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

        1. 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

          --
          http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
          1. 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

            1. 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

              --
              http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
              1. Weiß du weiter?

                ja,

                $tbhtml = ersetzen($tbhtml, $de_row)

                1. Hallo,

                  ahh danke es geht :)

                  MFG
                  Andavos

                  --
                  http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr