如何使用php定位mysql查询表结果中的特定单元格

时间:2017-05-10 07:51:57

标签: php jquery html mysql ajax

当我从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数组,但我发现它是不可能的。现在我迷路了,因为我不知道如何访问该列的特定单元格。

1 个答案:

答案 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本身中可用,因此我使用该计数器。