if(mysqli_num_rows)while(mysqli_fetch_assoc)循环在第一次迭代时未发布正确的值,适用于下一个

时间:2018-09-20 14:30:30

标签: php mysql

我的代码正在运行一个循环,其中添加了文本区域,用户可以在其中输入查询,它所在的div中还包含一个下拉列表,其中包含可用于运行这些查询的服务器列表。起初,它仅能正常工作第一次迭代,并且在下一个下拉列表中完全不显示列表,但是当我弄乱代码并将查询粘贴到循环内时,所有下拉列表均已填充,但第一个textarea的服务器ID停止正确发布,而是发送了数据库中当前的值。换句话说,它不会正确更新。

<?php
if(mysqli_num_rows($result_query) > 0){ 
   while($rowq = mysqli_fetch_assoc($result_query)){                        
     $sql_servers = "SELECT id, name, address FROM servers ORDER BY id ASC";
     $result_servers = mysqli_query($link, $sql_servers);
 ?>
     <table>
       <form name="formStep" method="post" action="">
       <br>
       <tr>
         <textarea class="form-control scrollabletextbox" id="query<?php echo $rowq['step']?>" name="query<?php echo $rowq['step']?>"><?php echo $rowq['query'];?></textarea>
       </tr>
       <tr>
         <td width="25%" style="vertical-align:middle;"><select id="server" name="server" class="form-control input-md">
         <?php
          if (mysqli_num_rows($result_servers) > 0) { 
            while($rows = mysqli_fetch_assoc($result_servers)){ ?>
              <option value="<?php echo $rows["id"];?>" <?php if($rows['id']==$row_query2['id_server']) echo 'selected=\"selected\"' ?> ><?php echo $rows["name"];?></option>   
           <?php
           }
           }?>                      
           </select>
           </td>
           <td style="padding:10px;"><input type="submit" name="submit" formaction="save.php?i=4&id=<?php echo $id; ?>&s=<?php echo $rowq['step'];?>" class="btn btn-block btn-primary" value="<?php echo $lableSave; ?>"></td>
          </tr>
          <?php
           }
           }?>
          </form>  
         </table>

如果我在save.php中回显服务器变量,它将不会为下拉列表中的新选定值进行更新,但将适用于该循环的所有后续迭代。

任何解决此问题或上一个方法的方法,在我开始尝试修改代码直到它起作用之前,将不胜感激。

0 个答案:

没有答案