2017-09-16 180 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']; 
     } 
}