Felix Riesterer: Dynamische if-Anweisung

Beitrag lesen

Lieber christian,

if((empty($haus))||(empty($auto)|| usw....){}
[...] aber -falls in der Datenbank nur ein passender Eintrag vorhanden ist- nur eine einzige Bedingung.

Dazu kannst Du eval() benutzen. Definiere doch eine boolsche Variable $ok, die Du per eval() berechnen lässt. Der eval zu übergebende String muss korrekte PHP-Syntax sein!

Ich könnte mir das so vorstellen:

$dbStr = "haus,auto,pool,pferd,pferdepflegerin";  
$variablen = explode($dbStr, ',');  
/* Du kannst Deine Liste an Variablen auch anders ermitteln,  
   aber Du wirst sie wohl besser in ein Array packen, um sie  
   einzeln zu durchlaufen. */  
  
$str = '(';  
for ($i = 0; $i < count($variablen); i++) {  
    if ($str != '(')  
        $str .= ' || '; // Oder-Operator nicht vor die erste Variable...  
    $str .= 'empty($'.$variablen[$i].')';  
}  
$str .= ')';  
  
eval('$ok = '.$str);  
  
if ($ok)  
    echo 'alles erfüllt!';  
else  
    echo 'nicht alles erfüllt!';

Obiges ist natürlich ungetestet!

Liebe Grüße aus Ellwangen,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)