while循环输出空选择框

时间:2017-04-27 10:17:50

标签: php mysql select mysqli while-loop

我有两个sql-queries:

  1. 提供与项目关联的员工数量。例如,在这种情况下为4。
  2. 提供员工的姓名和身份证明。
  3. 我希望我的代码输出4个选择框,其中包含员工的所有名称。作为<option></option>标记。

    我当前的代码提供了4个选择框。只有第一个填写了正确的雇员姓名。接下来的三个是空的<select></select>标签

    $con=mysqli_connect("localhost","root","","portefoejlestyring");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    
      mysqli_set_charset($con,"utf8");
    
    
    
    $query= "
    select 
    medarbejdere.navn as medarbejderNavn,
    medarbejdere.id as medarbejderId,
    projekt.id as projectId
    
    from projekt_has_medarbejdere
    
    join projekt on projekt.id = projekt_has_medarbejdere.projekt_ref
    join medarbejdere on medarbejdere.id = projekt_has_medarbejdere.bruger_ref
    
    where projekt.id = '$search'
    
    "; 
    
    $queryMedarbejder= "
    select 
    medarbejdere.navn as medarbejderNavn,
    medarbejdere.id as medarbejderId
    
    from medarbejdere
    "; 
    
    $x = 2;
            $result=mysqli_query($con,$query);  
            $resultMedarbejder=mysqli_query($con,$queryMedarbejder);
    
     while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC)) {
    
                        echo "<select class='selectpicker form-control' name='medarbejder[]'>";     
    
                while ($rowMedarbejder=mysqli_fetch_array($resultMedarbejder,MYSQLI_ASSOC)) {
        echo "<option value='$rowMedarbejder[medarbejderId]' name='medarbejder'>$rowMedarbejder[medarbejderNavn]</option>";
    
                } 
    
             echo "</select>";
    
                } 
    

    任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:2)

您正在看到这个问题,因为当您开始外部循环的第二次迭代时,内部循环已经在结束。 MySQL fetch不会在外循环的每一轮上自动返回到内循环的开始。

首先将内部循环的结果放入数组中,然后根据需要循环遍历数组。

答案 1 :(得分:0)

当您重新解释问题while($row = mysql_fetch_array($query)) doesn't work in second time

时,

可能会重复

P.S。我无法发表评论,所以发帖回答