将查询中的数据插入数组


Inserting data from query into an array

我有一个表单,其中屏幕上有单独的文本框,我想在每个文本框中插入学生姓名。每个文本框将包含一个学生姓名。我有一个 SQL 查询,它可以获取创建此表单的类所需的所有学生。当 SQL 在 PHPMyAdmin 中运行时,查询会返回我想要的确切值。

下面的代码是我希望从数据库中获取数据并将其放入数组中,以便以后可以将每一行放入文本框中。但是,当我运行此代码时,完成的数组仅包含 1 个元素,并且是查询找到的第二行。通过查询找到的记录是;

+--------------------------+
| Pupil_Name (Column name) |
+--------------------------+
| Sam Price                |
| Keith mcgareth           |
+--------------------------+

只有Keith McCrgareth在最后得到了回应。何时应回显两条记录。

$pupilarray = array();
$pupilquery = mysqli_query($connection, "SELECT Pupil_Name FROM tbllogin WHERE Class_Name = 'Heulog'         AND Access_Level = 'pupil'");
while($row = mysqli_fetch_assoc($pupilquery)){
$pupilarray = $row['Pupil_Name'];
}
echo $pupilarray;

是否创建错误的阵列?还是我错过了什么?

由于您将回声放在循环之后,因此只会获得最后一个值。如果您希望在循环进行时打印回声,请将回声放入其中:

while($row = mysqli_fetch_assoc($pupilquery)){
    $pupilarray = $row['Pupil_Name'];
    echo $pupilarray . '<br/>';
}

但是,如果你的目的是创建一个数组,那么你应该在赋值上使用数组符号来推送它:

$pupilarray = array(); // initialize an array named `pupilarray`
while($row = mysqli_fetch_assoc($pupilquery)){
    $pupilarray[] = $row['Pupil_Name'];
           //  ^ push the value inside
}

旁注:如果你的想法,你可以直接回显数组(echo $pupilarray(。不,你不能那样做。使用print_r()var_dump()查看其内容。

你覆盖了$pupilarray变量,你不会向数组添加一些东西。向数组中添加一些东西可以使用$pupilarray[] = ...

试试这个。

$pupilarray = array();
$pupilquery = mysqli_query($connection, "SELECT Pupil_Name FROM tbllogin WHERE Class_Name = 'Heulog'         AND Access_Level = 'pupil'");
while($row = mysqli_fetch_assoc($pupilquery)){
$pupilarray[] = $row['Pupil_Name'];
}
print_r($pupilarray);

在代码中,您可以获得最后一个值,请按照更改它

mysqli_fetch_assoc ( mysqli_result $result (.返回与读取的行对应的关联数组

while($row = mysqli_fetch_assoc($pupilquery)){
$pupilarray[] = $row['Pupil_Name']; // value of Pupil_Name column put in array
$pupilarrayFull[] = $row; // Put each $row array in pupilarrayFull[] 
}
print_r($pupilarray) // your array is here of Pupil_Name column
print_r($pupilarrayFull) // your array is here of All column