Php可重复区域

Php可重复区域,php,Php,所以我得到了这个代码,现在它正在重复所有的东西,我只是想让它重复回显,所以我从它那里得到所有的用户名,如果我保持原样,当我按下用户名时,它也会重复这个表单。每次我尝试调整它时,它都会给我语法错误 <?php do { ?> <?php $username = $row_mensagens['username']; $user = $row_mensagens['id'];

所以我得到了这个代码,现在它正在重复所有的东西,我只是想让它重复回显,所以我从它那里得到所有的用户名,如果我保持原样,当我按下用户名时,它也会重复这个表单。每次我尝试调整它时,它都会给我语法错误

<?php do { ?>
        <?php
                 $username = $row_mensagens['username'];
                 $user     = $row_mensagens['id'];

        if(isset($_GET['user']) && !empty($_GET['user'])){
          ?>

          <form>
            Introduz mensagem : <br>
            <textarea name='message' rows='7' cols='60'></textarea>
            <br><br>
            <input type='submit' value="Send Message" />
          </form>

          <?php
        } else {

                  echo "<p><a href='mensagens.php?user=$user'>$username</a></p>";


              }


        ?>
          <?php } while ($row_mensagens = mysql_fetch_assoc($mensagens)); ?>

介绍策略:


do{}while()
将始终重复来自数据库的记录数

您可以这样做:

<?php
    if(isset($_GET['user']) && !empty($_GET['user'])){
?>
<form>
    <input type="hidden" name="user" value="<?php echo $_GET['user']; ?>" /> <!-- hidden field so you can process to who -->
    Introduz mensagem : <br>
    <textarea name='message' rows='7' cols='60'></textarea>
    <br>
    <br>
    <input type='submit' value="Send Message" />
</form>

<?php
    } else {
        do {
            $username = $row_mensagens['username'];
            $user     = $row_mensagens['id'];
            echo "<p><a href='mensagens.php?user=$user'>$username</a></p>";
        } while ($row_mensagens = mysql_fetch_assoc($mensagens));
    }
?>

移动
do{
else
中,并且仅当您有
$\u GET['user']

我还为您添加了一个隐藏字段,以便您知道要向谁发送消息

希望你明白这是怎么回事

我还建议将该表单设置为
post
表单,因为默认情况下它是
get
表单,并且由于您有
textarea
,如果消息太长,您更可能会遇到错误

LE:另一个建议是,尝试移动到PHP 5.5中被视为不推荐使用的或,并且有一些很好的机会被删除。

因此,将
移动到循环之外,只保留需要重复的输出。