2012-09-28 85 views
1
echo '<div>'; 
while ($row=mysql_fetch_assoc($result)) 
{ 
    if ($row['Course']!=$old_id) 
    { 
     $old_id=$row['Course']; 
     echo '</div> 
        <div class="sectitle">'.$row['Course'].'</div> 
        <div style="width:100%;float:left">'; 
    } 
    if ($row['Approved']==1) 
    { 
     $coursedate=date("M Y", strtotime($row['Submitted'])); 
     echo '<div class="nbutton"> 
      <ul> 
       <li><strong><a target="_new" href="' . $row['AssignmentURL'] . '">' . $row['URL'] . '</a></strong></li> 
       <li>Instructor: ' . $row['LastName'] . ', ' . $row['FirstName'] . '</li> 
       <li>Book: '.$row['TextBook'].'</li> 
       <li>Submitted: '.$coursedate.' </li> 
      </ul> 
     </div>'; 
    } 
} 
echo '</div>'; 

我正在學習PHP,並且寫得很匆忙。現在我對循環的工作原理有了更多的瞭解,現在我試着回到這個並重新格式化它。如何根據數據庫字段創建循環?

$行包含的課程值與ESL 1010或ENGL 1010類似,並且是每個條目的標準值。我怎樣組織我的循環,以便它使用的東西,包括這個方法我所熟悉的:

$courses=array_unique($row['Course']) 
foreach ($courses as $course) 
{... This is where I get lost. 

很抱歉,如果這是一個非常簡單的解決。我似乎無法將我的大腦包裹在它周圍。

+0

'$ row ['Course']'是一個數組? – xdazz

+0

不,這就是我要說的是如何獲得與$ courses = array_unique($ row ['Course'])相同的效果......抱歉,這個不清楚。 – zijoud

+0

目前還不清楚你想要什麼。 'array_unique()'要求它的參數是一個數組,並且從中刪除重複數據。但'$ row ['Course']'只是一個字符串,那麼刪除重複項意味着什麼? – Barmar

回答

0
$courses = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    $courses[] = $row; 
} 

現在$courses是一個數組保存所有的課程,你已經提取從MySQL結果集的數據並將其存儲在數組中。現在就做任何你想做的事。

如果可能的話,你應該避免這樣做,因爲它需要更長的時間並且使用更多的內存,而不是一次遍歷結果集。

+0

感謝您的回覆。如果這實際上使用更多的內存,我會堅持使用我設置$ old_id的當前方式。我能夠在關閉div的else之後添加另一個if語句,並在此時設置$ old_id,而不是在第一個if語句中。我的目標之一就是在一開始就擺脫愚蠢的空白div。 – zijoud