我有一个表单,其中屏幕上有单独的文本框,我想在每个文本框中插入学生姓名。每个文本框将包含一个学生姓名。我有一个 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