Auge: Fehler unterdrücken mit @, oder die richtige Art dies zu tun

Beitrag lesen

Hallo

Ich lese über SELECt meine MYsql Datenbnak aus und habe die Inhalte in einenen Objekt.

$treffer->name
$treffer->computer

diese gebe ich dann aus...

echo 'Die Fee hat heisst '.$treffer->name.' und arbeitet mit einem '.$treffer->computer;

Soweit Ok.

Jetzt möchte ich meine Ausgabetexte in eine Language Datei schreiben, so das ich praktisch den Text und den Code trenne.

$lang-satz ='Die Fee hat heisst '.$treffer->name.' und arbeitet mit einem '.$treffer->computer;

Da ich die Language Variablen am Anfang der Seite per Include lade, habe ich die Daten noch nicht aus der Datenbank gelesen. So das ich eine Warnung bekomme.

Notice: Undefined variable:

Notice: Trying to get property of non-object in

Klar, du versuchst, Daten in den Text einzufügen, die du zu diesem Zeitpunkt noch garnicht aus der DB gelesen hast.

Diese möchte ich aber nicht, kann ich so den Fehle runterdrücken?

$lang-satz ='Die Fee hat heisst '.@$treffer->name.' und arbeitet mit einem '.@$treffer->computer;

Oder gibt es eine andere Möglichkeit, am Seitenanfang die Language Dateien einlesen, ohne Fehlerausgabe?

Das kannst du mit Templates erreichen. In der Sprachdatei sollte in etwa folgendes stehen:

$lang-satz ='Die Fee hat heisst {Name} und arbeitet mit einem {Computer}';

Das Format '{Schluesselname}' ist hier nur ein Vorschlag. Es gibt auch andere Formate (z.B. '<%Schluesselname%>', '[Schluesselname]', etc. pp.). Wenn du nun die Daten aus der DB gelesen hast, fügst du die Fundstellen mit einer Stringersetzung z.B. mit str_replace in das Template ein.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3