如何在 PHP 中多次 运行 一个脚本

How to run a script multiple times in PHP

我正在尝试 运行 我页面上的这个脚本。

    <label for="proof1">1st proof pic:</label>
  <input type="file" name="proof1" id="proof1">
  <label for="p1user">Submitted By:</label>
  <select name="p1user" style="width:100px">
  <option value="None"></option>
  <?php while($rows = $users->fetch_array())
        {
                $user = $rows['username'];
                echo "<option value='$user'>$user</option>";
        } ?> </select>
  <br>
  <label for="proof2">2nd proof pic:</label>
  <input type="file" name="proof2" id="proof2">
  <label for="p2user">Submitted By:</label>
  <select name="p2user" style="width:100px">
  <option value="None"></option>
  <?php while($rows = $users->fetch_array())
        {
                $user = $rows['username'];
                echo "<option value='$user'>$user</option>";
        } ?> </select>
  <br>
  <label for="proof3">3rd proof pic:</label>
  <input type="file" name="proof3" id="proof3">
  <label for="p1user">Submitted By:</label>
  <select name="p3user" style="width:100px">
  <option value="None"></option>
  <?php while($rows = $users->fetch_array())
        {
                $user = $rows['username'];
                echo "<option value='$user'>$user</option>";
        } ?> </select>

第一次工作正常,但其他两次返回空白。我究竟做错了什么? 是的,$users在代码前面定义了

您需要在每次获取循环之前返回到结果集的开头,$users->data_seek(0);

  <label for="proof1">1st proof pic:</label>
  <input type="file" name="proof1" id="proof1">
  <label for="p1user">Submitted By:</label>
  <select name="p1user" style="width:100px">
  <option value="None"></option>
  <?php while($rows = $users->fetch_array())
        {
                $user = $rows['username'];
                echo "<option value='$user'>$user</option>";
        } ?> </select>
  <br>
  <label for="proof2">2nd proof pic:</label>
  <input type="file" name="proof2" id="proof2">
  <label for="p2user">Submitted By:</label>
  <select name="p2user" style="width:100px">
  <option value="None"></option>
  <?php $users->data_seek(0);
        while($rows = $users->fetch_array())
        {
                $user = $rows['username'];
                echo "<option value='$user'>$user</option>";
        } ?> </select>
  <br>
  <label for="proof3">3rd proof pic:</label>
  <input type="file" name="proof3" id="proof3">
  <label for="p1user">Submitted By:</label>
  <select name="p3user" style="width:100px">
  <option value="None"></option>
  <?php $users->data_seek(0);
        while($rows = $users->fetch_array())
        {
                $user = $rows['username'];
                echo "<option value='$user'>$user</option>";
        } ?> </select>

或者您可以将所有名称放在一个数组中,然后每次都使用它。

$usernames = [];
while ($rows = $users->fetch_assoc()) {
    $usernames[] = $rows['username'];
}
  <label for="proof1">1st proof pic:</label>
  <input type="file" name="proof1" id="proof1">
  <label for="p1user">Submitted By:</label>
  <select name="p1user" style="width:100px">
  <option value="None"></option>
  <?php 
    foreach ($usernames as $user) {
        echo "<option value='$user'>$user</option>";
    } ?> </select>
  <br>
  <label for="proof2">2nd proof pic:</label>
  <input type="file" name="proof2" id="proof2">
  <label for="p2user">Submitted By:</label>
  <select name="p2user" style="width:100px">
  <option value="None"></option>
  <?php 
    foreach ($usernames as $user) {
        echo "<option value='$user'>$user</option>";
    } ?> </select>
  <br>
  <label for="proof3">3rd proof pic:</label>
  <input type="file" name="proof3" id="proof3">
  <label for="p1user">Submitted By:</label>
  <select name="p3user" style="width:100px">
  <option value="None"></option>
  <?php 
    foreach ($usernames as $user) {
        echo "<option value='$user'>$user</option>";
    } ?> </select>