我在我的數據庫類的功能,這使我的事件的列表中的某個用戶正在參加另一個變量添加到陣列使用它的foreach循環
function getEventList($uid)
{
$date = date('Y-m-d H:i:s');
$eventSQL = "SELECT em.eventID, e.eventName, e.eventTime FROM eventmembers em INNER JOIN events e ON em.eventID = e.eventID WHERE userIDInvited = :uid";
$eventPrepare = $this->prepare($eventSQL);
$eventPrepare->bindParam(':uid', $uid);
$eventPrepare->execute();
return ($eventPrepare->rowCount() > 0)
? $eventPrepare->fetchAll() : array();
}
要訪問這些結果,我簡單地做這個
//php
$eventList = $db->getEventList($userid);
if($eventList == NULL){
$smarty->assign('events', 'No events');
}
else{
$count = sizeof($eventList);
for($i = 0; $i < $count; $i++)
{
$smarty->assign('events', $eventList);
}
}
html
<p>MY EVENTS</p>
{foreach from=$events item=result}
<a href="https://localhost/FinalYear/events/{$result.eventID}.php">{$result.eventName}</a><br>
{$result.eventTime}<br>({$result.timeRemain} Days remaining)
<br>
<br>
{/foreach}
我想現在要做的是增加,這裏面還有說多少天,直到剩餘此事件發生。
我所做的只是簡單地在for循環中添加它。現在
$startTimeStamp = strtotime($date);
$endTimeStapm = strtotime($eventList[$i]['eventTime']);
$timeDiff = abs($endTimeStapm - $startTimeStamp);
$numberDays = $timeDiff/86400;
$numberDays = intval($numberDays);
的問題是,那麼當,用戶參加一個以上的情況下,$numberDays
將被永遠改寫。所以我試圖將$numberDays
添加到當前數組索引的末尾。但是這給了我一個無盡的循環。如果沒有$numberDays
var_dump
給我這個輸出,當我必須項
array(2) { [0]=> array(3) { ["eventID"]=> string(1) "1" ["eventName"]=> string(7) "Konzert" ["eventTime"]=> string(19) "2013-03-28 00:00:00" } [1]=> array(3) { ["eventID"]=> string(1) "2" ["eventName"]=> string(4) "Oper" ["eventTime"]=> string(19) "2013-03-30 00:00:00" } } array(2) { [0]=> array(3) { ["eventID"]=> string(1) "1" ["eventName"]=> string(7) "Konzert" ["eventTime"]=> string(19) "2013-03-28 00:00:00" } [1]=> array(3) { ["eventID"]=> string(1) "2" ["eventName"]=> string(4) "Oper" ["eventTime"]=> string(19) "2013-03-30 00:00:00" } }
但我也想在剩餘天數的每個條目的結尾。問題是,我不能在另一個循環中執行它,因爲這意味着我需要在另一個循環內的.html文件中創建另一個循環。所以它會在另一個循環跳轉到下一個條目之前通過。
任何建議如何解決這個問題?
我的數據庫表看起來像這樣
表events
eventID, eventName, eventDescription, eventLocaion, eventTime, eventHost, privacy Settings
表eventmembers
eventID, userIDInvited, InvitationStatus
您正在循環中分配'$ smarty-> assign('events',$ eventList);'每次它將覆蓋前一個值in事件將永遠是最後一個 – 2013-03-26 11:55:40
Hi @PrasanthBendra - 如果我將它寫入for-loop或for for循環中,它沒有任何區別。只要我加上時間計算,它總是會導致無限循環。 – loomie 2013-03-26 12:06:02