Layout aus der Datenbank mit Inhalten füllen

dreambaser

Erfahrenes Mitglied
Hallo Leute,

ich habe ein kleines Problem. Ich habe mein Layout, was Bilder und Texte ausgeben soll in der Datenbank abgelegt. Diese werden durch ein SQL Statement geladen und sollen anschließend mit den Inhalten die auch per SQL Statement kommen gefüllt werden, also ersetzt werden.

Irgendwo habe ich aber einen Fehler, weil das Layout zwar ankommt, allerdings nicht mit den Daten gefüllt wird, sondern die Variablen unterdrückt.

Wo liegt mein Denkfehler?

mfg
Dreambaser
 
Hi,

in welchem Format liegt das Layout in der Datenbank?

Ich vermute mal folgendes: "<strong>$titel</strong>" usw.

Du wirst das wohl per SQL einlesen in eine Variable ... das Problem was du hast ist, dass diese Variable dann nicht interpoliert wird, sprich nicht auf Variablen überprüft wird. Der Befehl eval kann da Abhilfe schaffen.

Ansonsten wäre es ganz hilfreich, wenn du ein bisschen mehr Informationen gibst ;)
 
Hi,

also dieses Fragment holt sich das Layout aus der DB und zeigt es an:

Speziell die echo $layout_query['layout'];
Ich hab jetzt mal auf die DB Abfrage verzichtet.

<table width="766" border="0" cellpadding="0" cellspacing="0" background="<?php echo DIR_WS_IMAGES."content_layer_1.jpg"; ?>">
<!--DWLayoutTable-->
<tr>
<td width="220" height="135">&nbsp;</td>
<td width="474" valign="top"><?php echo $layout_query['layout']; ?></td>
<td width="72">&nbsp;</td>
</tr>
<tr>
<td height="206">&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

In der Datenbank liegt das Layout so vor:

<table width="474" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="12" height="13"></td>
<td width="211"></td>
<td width="14"></td>
<td width="219"></td>
<td width="18"></td>
</tr>
<tr>
<td height="19"></td>
<td rowspan="4" valign="top"><img src="<?php echo $teaser_query['picture']; ?>" border="0"></td>
<td></td>
<td valign="top"><?php echo $teaser_query['headline']; ?> </td>
<td></td>
</tr>
<tr>
<td height="19"></td>
<td></td>
<td valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
<td></td>
</tr>
<tr>
<td height="19"></td>
<td></td>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td height="53"></td>
<td></td>
<td valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
<td></td>
</tr>





<tr>
<td height="13"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>



</table>

welches dann in die $layout_query['layout']; geladen wird.

Soweit funktioniert das ganze auch.

Im Layout sind dann aber Variablen eingesetzt, die auch aus der DB kommen und diese werden nicht angezeigt, bzw. ausgeführt. Siehe <?php echo $teaser_query['headline']; ?>

Das ist im Moment noch sehr undurchsichtig. bitte entschuldigt :rolleyes:
 
naja, genau dann kommt eval() zum Einsatz. Du holst dir erst die Variablen aus der Datenbank, dann den Layoutstring und dann machste da noch nen eval() drüber, dann geht es.
 
Hi,

erstmal danke für den Tipp. Ich hab noch keine rechte Vorstellung, wie ich dafür eval verwenden kann. Ich scheitere immer wieder daran, das ich zwar das Layout laden kann, aber die Daten nicht hinein bekomme. *grrr*

Wie würdest du das machen?

mfg
Dreambaser
 
Zurück