Php可重复区域

时间:2014-12-19 13:11:16

标签: php

所以我得到了这个代码,目前它正在重复所有内容,我只是想让它重复回声,所以我从中获取所有用户名,如果我离开它,它也将重复表单当我按用户名。每当我试图调整它时,它只是给了我语法错误

<?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)); ?>

1 个答案:

答案 0 :(得分:0)

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并仅在您有$_GET['user']时显示表单

我还为你添加了一个隐藏字段,让你知道发送消息的人。

希望您了解这是如何运作的。 Documentation on Control Structures: do-while

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

LE:另一个建议是,尝试转移到PDOmysqli_* functions,因为从PHP 5.5开始,mysql_* functions被视为已弃用,并且有很好的机会被移除。