Php 如何在同一页面的两个窗体上显示数据库结果

Php 如何在同一页面的两个窗体上显示数据库结果,php,mysql,forms,Php,Mysql,Forms,我在同一页上处理两个表单。两者都有相同的选择,管理员可以在其中选择用户。为此,我使用了我创建的find_all函数。选择给定表名中的所有内容。然后我使用while循环填充选择选项。它们正确地显示在第一个窗体上。但第二种形式是空的。我想知道为什么会这样。有什么想法吗?谢谢各位: <?php $users = find_all('ph_users'); ?> // first form <form action="credits_manage.php" method="post"

我在同一页上处理两个表单。两者都有相同的选择,管理员可以在其中选择用户。为此,我使用了我创建的find_all函数。选择给定表名中的所有内容。然后我使用while循环填充选择选项。它们正确地显示在第一个窗体上。但第二种形式是空的。我想知道为什么会这样。有什么想法吗?谢谢各位:

<?php $users = find_all('ph_users'); ?>

// first form
<form action="credits_manage.php" method="post">
  <div class="form-group">
    <label for="credits_amount">Credits Amount</label>
    <input type="number" placeholder="Enter credits amount" id="credits_amount" class="form-control" required>
  </div>
  <div class="form-group">
    <label for="user">Select User</label>
    <select name="user" id="user" class="form-control" required>
      <option value="">Select...</option>
      <?php while ($user = mysqli_fetch_assoc($users)) { ?>
        <option value="<?php echo $user['user_id']; ?>"><?php echo $user['username']; ?></option>
      <?php } ?>
    </select>
  </div>
  <input type="submit" value="Give Credits" name="give-credits-submit" class="btn btn-primary waves-effect waves-light mt-2">
</form>

// second form
<form action="">
  <div class="form-group">
    <label for="credits_amount">Credits Amount</label>
    <input class="form-control" type="password" value="lachiweb" id="credits_amount" required>
  </div>
  <div class="form-group">
    <label for="remove_credits_user">Select User</label>
    <select name="remove_credits_user" id="remove_credits_user" class="form-control" required>
      <option value="">Select...</option>
      <?php while ($remove_credits_user = mysqli_fetch_assoc($users)) { ?>
        <option value="<?php echo $remove_credits_user['user_id']; ?>"><?php echo $remove_credits_user['username']; ?></option>
      <?php } ?>
    </select>
  </div>
  <div class="form-group">
    <label for="reason">Choose a Reason</label>
    <input class="form-control" type="password" value="lachiweb" id="reason" required>
  </div>
  <input type="submit" value="Remove Credits" name="update-password-submit" class="btn btn-primary waves-effect waves-light mt-2">
</form>

我认为这是因为您使用mysqli_fetch_assoc$users两次,而这不是它的工作原理。我不确定这一点,但我认为您只能使用一次,因为它已在所有用户中循环使用,因此没有其他可循环使用的内容。

最好在表单中使用名称,我不知道您为什么在表单中使用相同的id要么创建所有用户的表格表示,然后在行的最右侧列上放置“添加/删除信用”操作。您只需要一个表单,然后就可以简单地提供用户id来使用通常的crud-like表。此外,您还可以从分页中获益。或者做一个创可贴解决方案,将所有获取的用户放入一个变量中,然后向他们展示您当前的两个表单。但为了回答您的问题,第二个表单的获取不起作用,因为在第一次获取时,它已经到达行的末尾,它在末尾/最后一次移动,所以在第二次,没有什么可获取的,另一种方法是在调用第二行的获取之前将指针重置回第一行