Variable variabel einsetzen (an einer Stelle)?

mogmog

Erfahrenes Mitglied
Hallo ich habe mail eine frage wo ich nicht weiter komme,

und zwar ich habe:
PHP:
$zahl = "1"; // <-- das kann auch $zahl = "2"; sein

und jetzt soll jenach dem was es für eine zahl ich eine entspechende ausgabe kommen in etwa so:
PHP:
if($zahl=="1") {$var = $variable_var_1;}
else if($zahl=="2") {$var = $variable_var_2;}

das sollte dann so weiter verwendet werden:
PHP:
// da es mehrfach verwendet werden soll .=
$var .= 'hallo welt';

// und dann die entsprechende ausgabe dafür
echo $var;

nur funktioniert das nicht so wie ich es mir denke.
"$variable_var_1" soll an an einer anderen stelle ausgegeben werden als "$variable_var_2". Ich hoffe mal es jemand verstanden hat was ich machen will.

Vielen dank schon mal im fornerein...
 
OK das habe ich auch schon versucht das sieht so aus

PHP:
$arr = array('$variable_var_1', '$variable_var_2');
$arr[1] .= 'hallo welt';

und so habe ich es auch schon probiert
PHP:
$arr = array($variable_var_1, $variable_var_2);
$arr[1] .= 'hallo welt';

nur hat das auch nicht funktioniert woran kann das liegen
 
Hi!

Verstehe überhaupt nicht, was Du brauchst, aber willst Du nicht eigentlich
PHP:
$arr = array($variable_var_1, $variable_var_2); 
$ausgabe = $arr[$zahl] . 'hallo welt';
echo $ausgabe;
...?

Grüße,
Mark.
 
naja ich habe mir das so gedacht ichh habe eine index.php in der eine template datei intigrirt wird.

so --> index.php:
PHP:
include("inhalt.php");

// template einlesen
$temp = file_get_contents("template.html");
$temp = str_replace('##INHALT_1##', $INHALT_1 , $temp);
$temp = str_replace('##INHALT_2##', $INHALT_2 , $temp);

// ausgabe
echo $template;

dann in der inhalt.php:
PHP:
// array
$arr = array( $INHALT_1, $INHALT_2 );

// db abfrage
query = "SELECT * FROM inhalt";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
		{
			$arr[$zahl] .= $row["ueberschrift"];
		}

zumindest ist das mein ansatz damit ich nicht mehrere datein für die ensprechenden ausgaben erstellen muss. Ich verstehe einfach nicht wo der fehler in meinem ansatz ist.

$INHALT1 und $INHALT2 stehen für verschiedene ausgabe positionen in der temp datei.

p.s. das soll für unsere verein eine seite werde
 
Achte bitte auf deine Rechtschreibung.

PHP:
$arr = array( $INHALT_1, $INHALT_2 );

Woher kommt $INHALT_1 ?

PHP:
query = "SELECT * FROM inhalt";

Wo ist das $ hin? ;)

PHP:
$arr[$zahl] .= $row["ueberschrift"];

Woher kommt $zahl und warum wird es nicht geändert? Du überschreibst mehrmals in der Schleife ein und den selben Wert.

PHP:
$temp = str_replace('##INHALT_1##', $INHALT_1 , $temp);

Warum nicht direkter?

PHP:
$zahl = 1;
while ($row = mysql_fetch_assoc($result))
{
  $temp = str_replace('##INHALT_' . $zahl . '##', $row["ueberschrift"] , $temp); 
  $zahl++;
}

Hast du meinen Link komplett gelesen?
 
Hy ich versuche es immer auf meine Rechtschreibung zu achten aber ich finde leider nicht immer meine Fehler denn bin legasteniker...

das ganze direkt lösen ich auch eine möglichkein. zum verständniss habe ich die inhalts datei sehr vereinfacht. und neu per Hand geschrieben.

Sorry mein fehler die $ kommt aus der db also so:
PHP:
$arr[$row["zahl"]] .= $row["ueberschrift"];

aber wenn ich das so gestallte das ich es in der inhalt.php ausgebe sollte es doch bei komplexeren ausgaben zu problemen kommen
PHP:
$temp = str_replace('##INHALT_' . $zahl . '##', $row["ueberschrift"] , $temp); 
$temp = str_replace('##INHALT_' . $zahl . '##', $row["inhalt"] , $temp); 
$temp = str_replace('##INHALT_' . $zahl . '##', '<img src="'.$row["bild"].'">'.$row["bildbeschreibung"] , $temp); 
$temp = str_replace('##INHALT_' . $zahl . '##', 'noch mehr inhalt
<br /> den denn hier entstehen soll<br />'.$row["video"].'<br />ect.' , $temp);

dann sollte doch alles etwas zu unübersichtlich werden oder kann ich das noch ander(lehrbarer werden)
 
Doch leider ist das so es giebt einfach verschiedene varianten und sehe halt meine fehler einfach nicht auch wenn sie teilweise extrem sind.
 
PHP:
$temp = str_replace('##INHALT_' . $zahl . '##', $row["ueberschrift"] , $temp); 
$temp = str_replace('##INHALT_' . $zahl . '##', $row["inhalt"] , $temp); 
$temp = str_replace('##INHALT_' . $zahl . '##', '<img src="'.$row["bild"].'">'.$row["bildbeschreibung"] , $temp); 
$temp = str_replace('##INHALT_' . $zahl . '##', 'noch mehr inhalt
<br /> den denn hier entstehen soll<br />'.$row["video"].'<br />ect.' , $temp);

Ok. Nächste Frage: Was machst du hier?

Und die Antwort:
Wir nehmen einfach an $zahl ist 7, dann...
ersetzt du ##INHALT_7## mit $row["ueberschrift"]
und ersetzt ##INHALT_7## (was nun nicht mehr vorhanden ist) mit $row["inhalt"]
und ersetzt ##INHALT_7## (was nun nicht mehr vorhanden ist) mit dem Bild usw.

Du siehst, etwas zu ersetzen was nicht mehr da ist, ist unsinn.

Lies dir das zu den Arrays doch bitte einmal durch: http://tut.php-quake.net/de/array.html
Oder wenn du Zeit hast, das ganze http://tut.php-quake.net
Dann weist du auch was passiert ;)

Und installiere dir dieses Plugin: https://addons.mozilla.org/de/firefox/addon/3077
Dann werden falsch geschriebene Sachen, die eingegeben werden, rot unterstrichen. Dann noch die Satzanfänge immer groß und es sieht schon recht passabel aus.
 
Zurück