Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环中的PHP模板缓冲_Php_Buffering - Fatal编程技术网

循环中的PHP模板缓冲

循环中的PHP模板缓冲,php,buffering,Php,Buffering,我基本上是在查询上运行一个循环,并使用PHP的缓冲在循环中插入一个模板文件。问题是,如果我的查询中有多个结果,我最终会得到两个或多个相同的结果(循环相同的数据,而不是mysql结果行中的下一个数据) 功能 function get_blocks(){ $query = "SELECT * FROM `my_table`"; $results = mysql_query($query); while($data = mysql_fetch_assoc($results){

我基本上是在查询上运行一个循环,并使用PHP的缓冲在循环中插入一个模板文件。问题是,如果我的查询中有多个结果,我最终会得到两个或多个相同的结果(循环相同的数据,而不是mysql结果行中的下一个数据)

功能

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>
我最终得到了

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没有用


想法?

我忽略了提取函数中的EXTR\u SKIP参数。EXTR_SKIP会导致任何已设置为不被覆盖的变量(据我所知,这是一种安全功能)

我忽略了extract函数中的EXTR_SKIP参数。EXTR_SKIP会导致任何已设置为不被覆盖的变量(据我所知,这是一种安全功能)

我想我刚刚解决了这个问题。。。这是一个EXTR_SkipyYou可以发布的答案,并接受它,如果这解决了你的问题。这将有助于本页的未来读者。我想我刚刚找到了答案。。。这是一个EXTR_SkipyYou可以发布的答案,并接受它,如果这解决了你的问题。这将有助于本页的未来读者。
echo ob_get_clean();