2017-04-27 68 views
0

我有两个SQL查询:While循环输出清空选择框

  1. 给出了与项目相关的员工数量。例如在这种情况下4。
  2. 给出雇员的姓名和编号。

我希望我的代码输出4个选择框,其中包含员工的所有名称。作为​​3210标签。

我现在的代码给出了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>"; 

      } 

任何帮助表示赞赏!

+0

请问您可以显示'mysql查询'或完整的代码? – mageDev0688

+0

@ mageDev0688发布更新 –

回答

2

你看到了这个问题,因为当你开始外循环的第二次迭代时,内循环已经结束了。在外层循环的每一轮中,MySQL提取都不会自动回到内层循环的开始位置。

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

+0

非常感谢。解决的办法是把结果放入一个数组,并用foreach循环遍历它。对于我使用for-loop的外部循环。 –