PHP Variabel in MySQL result

simon_p

Grünschnabel
Hallo an alle,

ich möchte ein SQL result per echo ausgeben in dem PHP Variablen, sind leider werden die nicht ersetzt.
Die Spalte in SQL sieh so aus:
Code:
Der Server '.$hostname.' ist wegen Wartungsarbeiten nicht ereichbar.
Das PHP echo so:
Code:
echo '<div class="error">'.$messagetext.'</div>';
Auf meiner Seite wird
Code:
Der Server '.$hostname.' ist wegen Wartungsarbeiten nicht ereichbar.
ausgegeben.
Ich bin gerade sehr ratlos was ich noch machen kann, um die ausgabe richtig hinzu bekommen.
Kann mir jemand von euch weiterhelfen?
 
Hi und Willkommen bei tutorials.de,

Festlegen, welche Variablen in welchem String vorkommen dürfen, dann zB. sowas machen:
"Der Server %1 ist wegen Wartungsarbeiten nicht erreichbar."
wobei %1 für die Variable steht, und in PHP mit str_replace ersetzen.

eval etc. besser vermeiden.
 
Hi sheel,

danke manchmal sieht man den Wald vor lauter Bäumen nicht. Ich habe es jetzt so gelöst
Code:
$messageparts = array("hostname", "hostfunction", "enddate");
$messagereplace = array("".$hostname."", "".$hostfunction."", "".$eventend."");
$messageout = str_replace($messageparts, $messagereplace, $messagetext);
nochmals vielen dank für deine Hilfe.
 
Du brauchst keine Anführungszeichen bei Variablen.
PHP:
$messageparts = array("hostname", "hostfunction", "enddate");
$messagereplace = array($hostname, $hostfunction, $eventend);
$messageout = str_replace($messageparts, $messagereplace, $messagetext);
 
oder du verwendest eval() oder sprintf()
PHP:
//Testdaten
$msg = 'Der Server $hostname ist wegen Wartungsarbeiten nicht ereichbar.';
$hostname = 'localhost';

//Mit eval ausgeben
$msg = eval("return \"{$msg}\";");
echo $msg;

PHP:
//Testdaten
$msg = 'Der Server %s ist wegen Wartungsarbeiten nicht ereichbar.';
$hostname = 'localhost';

$msg = sprintf($msg, $hostname);
echo $msg;
 
Hi,

ich habe es jetzt wie oben geschrienen gelöst. Die Anführungszeichen habe ich inzwischen entfernt, hatte kurz nach dem Post gemerkt dass das ja unnötiger "Ballast" war.
Danke für eure Antworten.
 

Neue Beiträge

Zurück