0

次のコードでは

$condition_string= "empty($_SESSION['group_by_Name']) && empty($_SESSION['group_by_Email']) && empty($_SESSION['group_by_Address']) && empty($_SESSION['group_by_Age']) && empty($_SESSION['group_by_Contact'])";

このコードは、if ステートメント not else を常に実行します。誰でも私のコードのどこにエラーがあるか教えてもらえますか?

   $observation_column_name_fetch = mysql_query("SELECT column_name
 FROM  observation_column where observation_id='$observation_id'")
     or die(mysql_error());

     while($observation_column_name_res = mysql_fetch_array( $observation_column_name_fetch ))
     {
      $observation_column_name[]=$observation_column_name_res[column_name];
     }   
     for ($i=0; $i<$observation_column_num; $i++)
     { 
      $group_by=$_POST[group_by_.$observation_column_name[$i]];
      $_SESSION[group_by_.$observation_column_name[$i]]=$group_by;
     }
     $j=1;
     $condition_string="";
     for($i=0; $i<$observation_column_num; $i++)
     {
     $condition_string.= 'empty($_SESSION[\'group_by_'.$observation_column_name[$i].'\'])';
     if($j<$observation_column_num)
      { $condition_string.=" && ";    $j++;    }
     }
     if($condition_string)
      {
      for ($i=0; $i<$observation_column_num; $i++)
        { echo "if statement executed ".$i." times<br/>";   }
      }
        else
        {
       for ($i=0; $i<$observation_column_num; $i++)
          { echo "else statement executed ".$i." times<br/>";        }
     }
4

2 に答える 2

1

変数名を動的にすることができます:

if( empty( $_SESSION['group_by_' . $observation_column_name[$i] ] ){
    // ..code..
}
于 2012-07-14T04:32:24.723 に答える
0

文字列表現の条件を if ステートメントに渡すことはできません。現在のコードでは、文字列$condition_string が false でないことを確認しているだけです。

条件を文字列形式でeval関数に渡して、コードとして評価する必要があります。

于 2012-07-14T04:12:51.207 に答える