Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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 将while循环放入字符串中_Php - Fatal编程技术网

Php 将while循环放入字符串中

Php 将while循环放入字符串中,php,Php,我有一段代码,它生成一个字符串,然后在底部回显循环。问题是只会显示循环通过的最后一个变量。我希望显示每个迭代 elseif ($row['type'] == 7) { $blog_table = $row['blog_table']; $getblog = mysql_query("SELECT * FROM `$blog_table`"); while ($blog = mysql_fetch_assoc($getblog)) { $rowI

我有一段代码,它生成一个字符串,然后在底部回显循环。问题是只会显示循环通过的最后一个变量。我希望显示每个迭代

elseif ($row['type'] == 7) {
    $blog_table = $row['blog_table'];
    $getblog = mysql_query("SELECT * FROM `$blog_table`");

    while ($blog = mysql_fetch_assoc($getblog)) 
    {
        $rowID = $blog['postID'];
        $matches = mysql_query("SELECT * FROM content WHERE `id` = '$rowID' ORDER BY `id` DESC");
        while ($post = mysql_fetch_assoc($matches)) 
        {
            if (mysql_num_rows($matches) > 0)
            {
            $strOutput = "<div class=\"controlPanel\"><a onClick=\"edit_{$post['id']}();return false\"><div class=\"controlPanel_edit\"></div>&nbsp;</a></div><p class=blogDate>{$post['date']}</p><span class=h1>{$post['title']}<p></p></span><p></p>{$post['maintext']}<p></p>";
            $postID = $post['id'];
            $getcomments = mysql_query("SELECT * FROM content WHERE `postID` = '$postID' ORDER BY `id` DESC");
            $num_comments = mysql_num_rows($getcomments); 
            $strOutput = $strOutput."<p class=\"blogPublisher\">Posted by {$post['publisher']}  |  Comments ({$num_comments})</p>";

            $strOutput = $strOutput."<div class=\"heriyah_blog_comments_content\">";
            while ($comments = mysql_fetch_assoc($getcomments)) 
            {
            $strOutput = $strOutput."<span class=\"blogCommentPublisher\"><b>{$comments['publisher']}</b>  |  {$comments['date']}<a onClick=delete_{$row['id']}();return false><img src=admin/system/images/delete.jpg class=click_btn></a></span><p></p>{$comments['maintext']}<p></p>";
            }
            $strOutput = $strOutput."</div>";
            $strOutput = $strOutput."<a class=click_btn onClick=comment_{$post['id']}();return false>Post a Comment</a><hr></hr>";
            }
            $strOutput = $strOutput;
        }
    }
    echo "$('#{$row['div']}.heriyah').append('<div class=\"heriyah_sortable\" id=\"sort_{$row['id']}\"><div class=\"controlPanel\"><a onClick=\"blog_{$row['blogID']}();return false\"><div class=\"controlPanel_settings\"></div></a><a onClick=\"delete_{$row['id']}();return false\"><div class=\"controlPanel_delete\"></div></a><div class=\"controlPanel_move\"></div></div><p>&nbsp;</p>{$strOutput}</div>');\n";
}

所以。。。只要在结束while循环的}之前移动echo…

我认为这里真正的问题是,每次为$strOutput变量分配新的内容时,都会覆盖它。您应该在当前使用$strOutput=.的几乎每个地方使用$strOutput.=。

将您的回音向上移动到while循环中?因为您在每次迭代中都重新定义$strOutput。我只想将回音移动到循环中,但我希望它环绕整个循环。谢谢,每次来这里我都会学到一些新东西。非常感谢。谁知道一个周期会有这么大的能量。结果我只在第一次$strOutput时需要它。我将把这个方法应用到我的实践中;您可以只使用$strOutput.='something';也
if (mysql_num_rows($matches) > 0)
        {
            $strOutput = "<div class=\"controlPanel\"><a onClick=\"edit_{$post['id']}();return false\"><div class=\"controlPanel_edit\"></div>&nbsp;</a></div><p class=blogDate>{$post['date']}</p><span class=h1>{$post['title']}<p></p></span><p></p>{$post['maintext']}<p></p>";
 $strOutput .= "<div class=\"controlPanel\"><a onClick=\"edit_{$post['id']}();return false\"><div class=\"controlPanel_edit\"></div>&nbsp;</a></div><p class=blogDate>{$post['date']}</p><span class=h1>{$post['title']}<p></p></span><p></p>{$post['maintext']}<p></p>";