2017-09-16 151 views
0

我使用while语句创建动态$_SESSION变量以从数据库中打印日期。只有需要打印的日期是TuesdayFriday。为了达到这个目标,我得到了date()strtotime()的工作日。PHP While循环动态会话变量

$d = 0;//create dynamic numbers 
while($mydate = mysqli_fetch_array($myweekdatesQ)){$d++; 

//get weekday of date 
$weekday =date('l', strtotime($mydate['event_date'])); 

if($weekday ==='Tuesday'){ 
$t = 't_'.$d; 
echo $_SESSION[$t] = $mydate['event_date']; 
} 

if($weekday ==='Friday'){ 
$f = 'f_'.$d; 
echo $_SESSION[$f] = $mydate['event_date']; 
} 
} 

虽然这个工作很好,但我有一个问题。 while语句打印如下

$_SESSION[t1]; 
$_SESSION[f2]; 
$_SESSION[t3]; 
$_SESSION[f4]; 
$_SESSION[t5]; 
$_SESSION[f6]; 
$_SESSION[t7]; 
$_SESSION[f8]; 

然而,可变$d永远小于1,超过4.最后的结果应该是

$_SESSION[t1]; 
$_SESSION[t2]; 
$_SESSION[t3]; 
$_SESSION[t4]; 

$_SESSION[f1]; 
$_SESSION[f2]; 
$_SESSION[f3]; 
$_SESSION[f4]; 

我怎样才能使这项工作?

回答

1

尽量使两个动态数字像这样

$d = 0;//create dynamic numbers for $t 
$x = 0; //create dynamic numbers for $f 
while($mydate = mysqli_fetch_array($myweekdatesQ)){ 

    //get weekday of date 
    $weekday =date('l', strtotime($mydate['event_date'])); 

    if($weekday ==='Tuesday'){$d++; 
     $t = 't_'.$d; 
     echo $_SESSION[$t] = $mydate['event_date']; 
    } 

    if($weekday ==='Friday'){$x++; 
     $f = 'f_'.$x; 
     echo $_SESSION[$f] = $mydate['event_date']; 
     } 
}