当我从mysqli_fetch_array结果中获取列并将其存储在变量中时,我遇到了如何访问特定表格单元格的问题。
$sql5 = "SELECT e.*, @curRow := @curRow + 1 AS row_number FROM employee e JOIN (SELECT @curRow := 0) r WHERE e.team_team_id = '$team_id' AND (position_pos_id = 3 or position_pos_id = 4 or position_pos_id = 5 or position_pos_id = 6 or position_pos_id = 7 or position_pos_id = 8 or position_pos_id = 9 or position_pos_id = 10 or position_pos_id = 11 or position_pos_id = 13 or position_pos_id = 14 or position_pos_id = 15 or position_pos_id = 16)";
$result5 = mysqli_query($connect, $sql5);
$row5 = mysqli_fetch_array($result5);
for($i=0;$i<$number;$i++){
echo "<select id='testingDiv".$i."' name='employee[]' class='clonedInput'>
<option value='".$row5['row_number'][$i]."'>" .$row5['emp_fname']. " " .$row5['emp_lname'] ."</option>";
while ($row3 = mysqli_fetch_array($result3)) {
echo "<option value='" . $row3['emp_id'] ."'>" .$row3['emp_fname']. " " .$row3['emp_lname'] ."</option>";
}
echo "</select><br>";
正如你所看到的,我计划通过一个计数器迭代它并将其视为一个3d数组,但我发现它是不可能的。现在我迷路了,因为我不知道如何访问该列的特定单元格。
答案 0 :(得分:0)
要做你想做的事,你也应该在外层使用内环的结构
$result5 = mysqli_query($connect, $sql5);
$i = 0;
while ($row5 = mysqli_fetch_array($result5)) {
echo "<select id='testingDiv" . $i . "' name='employee[]' class='clonedInput'>
<option value='" . $i . "'>" .
$row5['emp_fname'] . " " . $row5['emp_lname'] .
"</option>";
while ($row3 = mysqli_fetch_array($result3)) {
echo "<option value='" . $row3['emp_id'] . "'>" .
$row3['emp_fname'] . " " . $row3['emp_lname'] .
"</option>";
}
echo "</select><br>";
$i++;
}
编辑(解释正在进行的事情)
您的代码的主要问题是mysqli_fetch_array
返回结果集的单行,因此您不能将该结果用作二维数组并使用您使用的for
循环访问所有行
您需要做的是将外部for
转换为while
循环,以便在每次迭代时将新行提取到$row5
变量中。通过这样做,您需要手动处理计数器值,因此最后$i++
。
关于$row5['row_number'][$i]
到$i
的转换,我想你想得到当前的行索引。出于我上面解释的相同原因,该指令是错误的,因为$row5
变量包含单行,很可能不会有'row_number'
列,并且肯定不会有您可以使用$i
访问的第二个维度。然而,当前行索引已在$i
本身中可用,因此我使用该计数器。