-1

假设我有这个简单的 PHP MYSQL while 循环:

<?php
while($row = $STH->fetch())
{
echo '<div id="$row['id']">$row['content']</div>';

echo '<div id="comment-holder">;
echo '<div id="$row['id2']">$row['content2']</div>'; 
echo '</div>';   

echo '<div id="$row['id3']">$row['content3']</div>';  

?>

如何让comment-holderDIV 像持有人一样行事?这意味着它应该只被回显一次,并且 a 的内容$row[id2]应该$row[content2]附加到它上面,如下所示:

 <div id="comment-holder">
 <div id="1">test</div> 
 <div id="2">different</div>
 <div id="3">text</div>  
 </div>

提前致谢

4

4 回答 4

2

起初:您的代码有错误 - 在单引号字符串中不是字符串插值。如果你想要这种结构,你可以简单地用给定的 div 包围你的代码

<div class="comment-holder">
<?php
while($row = $STH->fetch())
{
echo "<div id=\"{$row['id']}\">{$row['content']}</div>";
echo "<div id=\"{$row['id2']}\">{$row['content2']}</div>";
echo "<div id=\"{$row['id3']}\">{$row['content3']}</div>";  
}
?>
</div>

或者:

<?php
echo '<div class="comment-holder">';
while($row = $STH->fetch())
{
    echo "<div id=\"{$row['id']}\">{$row['content']}</div>";
    echo "<div id=\"{$row['id2']}\">{$row['content2']}</div>";
    echo "<div id=\"{$row['id3']}\">{$row['content3']}</div>";  
}
echo '</div>';
?>
于 2013-02-11T01:23:18.093 回答
0

也许我在这里遗漏了一些非常明显的东西,但是......你为什么不改变回声的顺序?

<?php
while($row = $STH->fetch())
{

echo '<div id="comment-holder">';
echo '<div id="' . $row['id'] . '">' . $row['content'] . '</div>';
echo '<div id="' . $row['id2'] . '">' . $row['content2'] . '</div>'; 
echo '<div id="' . $row['id3'] . '">' . $row['content3'] . '</div>';  
echo '</div>';   

?>

顺便说一句,while块在哪里结束?

于 2013-02-11T01:23:03.590 回答
0
$ones = $twos = $threes = '';

while ($row = $STH->fetch()) {
    $ones .= "<div id='$row[id]'>$row[content]</div>";
    $twos .= "<div id='$row[id2]'>$row[content2]</div>";
    $threes .= "<div id='$row[id3]'>$row[content3]</div>";
}

$result = sprintf("%s<div id='comment-holder'>%s</div>%s", $ones, $twos, $threes)
于 2013-02-11T01:24:55.160 回答
-1

把它放在while循环之外。前任。

<?php
    echo 'hi';
    for($i = 0; $i < 5; $i++){
        echo 'yo';
    }
    echo 'the end';
?>

会输出:hi yo yo yo yo yo end

于 2013-02-11T01:25:56.870 回答