getdate有任何特殊类型(string,int)?

时间:2014-05-10 22:27:04

标签: php mysql

我要包含一个页面(FileA.php),该页面在首次加载时应显示今年(2014年)的数据。在该页面中有一个选择器,允许选择不同的年份,将新年发送为post,处理程序php再次包含fileA.php,但显示所选年份的数据。

我的问题是,在第一次加载时没有显示任何内容,但之后(在帖子之后)它可以正常工作。代码(FileA.php)的剥离版本如下:

if (!isset($_SESSION['Anio'])){
$today = getdate();
$_SESSION['Anio']=$today['year'];   
}
echo "<br>Anio: ".$_SESSION['Anio']."<br>";//for checking purposes only

“工作”部分正在选择列名称包含该年份的列。部分代码如下:

@mysql_select_db("mydb") or die( "Unable to select database");
mysql_query ("SET NAMES 'utf8'");       
$query=mysql_query('select * from mytable') or die(mysql_error()); 

$field = mysql_num_fields( $query );
for ( $i = 0; $i < $field; $i++ ) {
    if (strpos(mysql_field_name( $query, $i ),$_SESSION['Anio']) !== false) {
        $names[] = mysql_field_name( $query, $i );
    }                   
}

然后我有一个显示结果的表,以及一个可以选择一年的dropbox,并将所选年份作为帖子发送给处理程序php。收到此帖后,将再次显示原始文件(FileA.php)。 handler.php如下:

if(isset($_POST['Anio'])) { 
   $_SESSION['Anio']=trim($_POST['Anio']);      
   include 'FIleA.php';         

}

如上所述,一旦$ _SESSION ['Anio']在发布后的handler.php中“生成”,所有代码都可以正常工作。但是在第一次到达页面时,getdate生成的$ _SESSION ['Anio']似乎无法识别。如果我回显$ _SESSION ['Anio'],它会显示一个似乎正确的值(2014年的第一次加载,以及之后的选定年份)。 认为getdate()有一个特殊类型,我试过

1.
$_SESSION['Anio']=(int)$today['year'];
2.
$_SESSION['Anio']=(string)$today['year'];
3.
$temp=$today['year'];
$_SESSION['Anio']="$temp";

不幸的是,它们都不起作用。 有人发现了这个问题吗?

1 个答案:

答案 0 :(得分:0)

只是为了完整性:这确实是一个类型的问题。代码开始按如下方式定义变量:

if (!isset($_SESSION['Anio'])){
    $hoy = getdate();
    $tmp=$hoy['year'];
    $_SESSION['Anio']=(string)$tmp; 
}