Jan Lehnardt: Erfebnis einer Abfrage als Variable ausgeben

Beitrag lesen

Hi,

function get_setting ($variable)
{
$result = mysql_query("SELECT setting FROM school_config WHERE variable = $variable");
}

$title = get_setting ($variable="title");
$banner = get_setting ($variable="banner");
$undertitle = get_setting ($variable="undertitle");
$tpl = get_setting ($variable="tpl");

Dieses Script sollte eigentlich immer das zur Variable gehörende Feld SETTING auslesen und dann die Variable definieren. Aber irgendwie funktioniert das nicht ... was mache ich falsch?

So einiges ;)

Um Dein Script zu berichtigen:

function get_setting ($variable)
 {
  $result = mysql_query("SELECT setting FROM school_config WHERE variable = $variable");
  $setting = mysql_fetch_array($result);
  return $setting[$variable];
 }

$title = get_setting ("title");
 $banner = get_setting ("banner");
 $undertitle = get_setting ("undertitle");
 $tpl = get_setting ("tpl");

ABER: So macht man das nicht [tm] ;)

Versuch es mit einer Query, das ist etwas resourcensparender:

$result = mysql_query('
SELECT setting, variable
FROM school_config
WHERE
variable = "title" OR
variable = "banner" OR
variable = "undertitle" OR # das heisst subtitle ;)
variable = "tpl"');

while($fields = mysql_fetch_array($result)) {
  switch($fields['variable']) {

case 'title':
    $title = $fields['setting'];
  break;
  case 'banner':
    $banner = $fields['banner'];
  break;
  case 'undertitle':
    $undertitle = $fields['undertitle'];
  break;
  case 'tpl':
    $tpl = $fields['tpl'];
  break;
  }
}

Ich wuerde das ganze auch nochmal ueberdenken, mir entgeht bisher der Sinn des ganzen.

Jan
--
P.S.: DISCLAIMER: Alles aus hohler Hand und ungetestet.