Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
嵌套while循环在php中只输出一行来选择标记_Php_Mysql_Loops_While Loop - Fatal编程技术网

嵌套while循环在php中只输出一行来选择标记

嵌套while循环在php中只输出一行来选择标记,php,mysql,loops,while-loop,Php,Mysql,Loops,While Loop,我正在使用下面的代码检索页面中的数据以选择标记 <?php $approveduser = mysqli_query($conn, "SELECT * FROM users WHERE `status` ='approved' AND `id` != '" . $_SESSION['user_row_id'] . "'"); while ($approvedrow = mysqli_fetch_array($approveduse

我正在使用下面的代码检索页面中的数据以选择标记

<?php
     $approveduser = mysqli_query($conn, "SELECT * FROM users WHERE `status` ='approved' AND `id` != '" . $_SESSION['user_row_id'] . "'");

    while ($approvedrow = mysqli_fetch_array($approveduser)) { 
    //this loops works fine
  ?>
        <tr>
           <td class="text-center">
              <div class="">
                  <select id="cat">
                     <?php
                         $cityquery = mysqli_query($conn, "SELECT * FROM `cities`");

                         while ($cityquery = mysqli_fetch_array($cityquery)) {
                         //this loop has the problem
                     ?>
                     <option value="<?php echo $cityquery['id']; ?>"><?php echo $cityquery['cityname']; ?></option>
                    <?php    
                     }
                    ?>
                  </select>
              </div>
           </td>
        </tr>
       <?php
       }
     ?>

此问题是您用行覆盖
$cityquery
变量。对行使用单独的变量

  <select id="cat">
     <?php
         $cityquery = mysqli_query($conn, "SELECT * FROM `cities`");

         while ($cityrow = mysqli_fetch_array($cityquery)) {
         //this loop has the problem
     ?>
     <option value="<?php echo $cityrow['id']; ?>"><?php echo $cityrow['cityname']; ?></option>
    <?php    
     }
    ?>
  </select>


上述方法可行,但最好将城市放在一个数组中,而不是在一个循环中获取它们。

首先获取
城市的内容
,并将结果存储在一个数组中。然后,您可以在内部循环中重用该数组,而不必反复从数据库中查询完全相同的数据。作为@MagnusEriksson所说的扩展,您可以在字符串中构建整个select HTML,然后只为每一行输出它。