2011-01-08 73 views
2

我基本上在查詢上運行循環,並使用PHP的緩衝在循環中插入模板文件。問題是如果我在查詢中有多個結果,我最終會得到兩個或更多相同的結果(循環相同的數據,而不是mysql結果行中的下一個結果)。PHP模板循環緩衝

功能...

function get_blocks(){ 
    $query = "SELECT * FROM `my_table`"; 
    $results = mysql_query($query); 

    while($data = mysql_fetch_assoc($results){ 
     extract($data, EXTR_SKIP); 
     ob_start(); 
     include(dirname(__FILE__) . '/templates/infoBlock.php'); 
     $returnString .= ob_get_clean(); 
    } 
    echo $returnString; 
} 

模板的樣子:

<div> 
    Hi my name is <?php echo $name; ?> 
    <br> 
    and my age is <?php echo $age; ?> 
</div> 

所以,如果我有兩個記錄:

record 1 
name: Joe 
age: 42 

record 2 
name: Sam 
age: 35 

我結束了

Hi my name is Joe 
and my age is 42 


Hi my name is Joe 
and my age is 42 

代替

Hi my name is Joe 
and my age is 42 


Hi my name is Sam 
and my age is 35 

我已經嘗試過

echo ob_get_clean(); 

,並採取$ returnString出來的功能都無濟於事......

想法?

+1

我想我只是想出了它......這是EXTR_SKIP – 2011-01-08 01:52:54

回答

0

我忽略了提取函數中的EXTR_SKIP參數。 EXTR_SKIP導致任何已被設置爲不被覆蓋的變量(據我所知,有一點安全功能)