Problem mit Variablen (PHP)

Germanwolf56

Well-known member
20 Oktober 2008
496
45
Hallo ,

Ich habe ein kleines Problem. Ich möchte gern Werte für das Design aus der Datenbank auslesen.

Das auslesen funktioniert auch und habe ich per "echo" überprüft. Jedoch nimmt er die Variablen nicht im Code an :-(

PHP:
<?
$sql = db_query ('SELECT * FROM '.$db_prefix.'_design');
$designdaten = mysql_fetch_assoc ($sql);

function head($titel){


$contenttextbreite = $designdaten['contenttextbreite'];
$contentkopf = $designdaten['designverzeichniss'] . $designdaten['contentkopfname'];
$contentbreite = $designdaten['contentbreite'];
$contentkopfhoehe = $designdaten['contentkopfhoehe'];
$contentfusshoehe = $designdaten['contentfusshoehe'];
$contentmitte = $designdaten['designverzeichniss'] . $designdaten['contentmittename'];
$contentfuss = $designdaten['designverzeichniss'] . $designdaten['contentfussname'];

echo '
<div align="center">
  <table width="'.$contentbreite.'" height="'.$contentkopfhoehe.'" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td background="'.$contentkopf.'"><div align="center" style="position:relative; color: #000000; font-weight: bold; top: -5px;">'.$titel.'</div></td>
    </tr>
  </table>
  <table width="'.$contentbreite.'" align="center" border="0" cellspacing="0" cellpadding="0" background="'.$contentmitte.'">
    <tr>
      <td>
        <table width="'.$contenttextbreite.'" align="center" border="0" cellspacing="0" cellpadding="0">
        <center><tr><td align="center">
';
}

Danke fürs draufschauen.

Gruß
GW
 
Jedesmal, wenn jemand "SELECT *" verwendet, stirbt ein Kätzchen.

Abgesehen davon... sind Variablen in PHP mittlerweile standardmäßig global? Wenn nein, ist $designdaten irgendwo als global deklariert? (Bin in PHP net mehr so drin :eek:)
 
Sie sind nicht global und es empfiéhlt sich auch nicht, sie global zu machen.
Einfach der Funktion noch ein Argument $designdaten geben und das Array mit an die Funktion übergeben.

PHP:
$designdaten = ..

function($titel, $designdaten)
{
    ...
}

head('Mein Titel', $designdaten);
 
Hey , ich danke euch.

Also müsste es so aussehen ?

PHP:
<?
$sql = db_query ('SELECT * FROM '.$db_prefix.'_design');
$designdaten = mysql_fetch_assoc ($sql);

function head($titel,$designdaten){


echo '
<div align="center">
  <table width="'.$designdaten['contentbreite'].'" height="'.$designdaten['contentkopfhoehe'].'" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td background="'.$designdaten['designverzeichniss'] . $designdaten['contentkopfname'].'"><div align="center" style="position:relative; color: #000000; font-weight: bold; top: -5px;">'.$titel.'</div></td>
    </tr>
  </table>
  <table width="'.$designdaten['contentbreite'].'" align="center" border="0" cellspacing="0" cellpadding="0" background="'.$designdaten['designverzeichniss'] . $designdaten['contentmittename'].'">
    <tr>
      <td>
        <table width="'.$designdaten['contenttextbreite'].'" align="center" border="0" cellspacing="0" cellpadding="0">
        <center><tr><td align="center">
';
}

Bin leider nicht zuHause und kann es nicht testen.
 
Ja, aber die Funktion muss logischerweise danach auch noch aufgerufen werden, damit etwas geschieht ;)