我有一个表单,我在屏幕上有单独的文本框,我想在每个文本框中插入一个瞳孔名称。每个文本框将包含一个学生名称。我有一个SQL查询,可以获取我为此表创建的类所需的所有学生。当SQL在PHPMyAdmin中运行时,查询返回我想要的确切值。
下面的代码是我希望从数据库中获取数据并将其放入数组中,以便我可以将每行放入文本框中。 但是,当我运行此代码时,完成的数组只包含1个元素,并且是查询找到的第二行。 查询找到的记录是;
+--------------------------+
| Pupil_Name (Column name) |
+--------------------------+
| Sam Price |
| Keith mcgareth |
+--------------------------+
最后只有Keith mcrgareth回应。两个记录都应该回应。
$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;
我创建了错误的数组吗?或者我错过了什么?
答案 0 :(得分:1)
由于您在循环之后立即放置了回声,因此您只能获得最后一个值。如果您希望在循环继续时打印回声,请将回声置于内部:
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()
查看其内容。
答案 1 :(得分:0)
您覆盖$pupilarray
变量,不向数组添加内容。使用$pupilarray[] = ...
答案 2 :(得分:0)
在您的代码中,您获得最后一个值,请按照
进行更改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
答案 3 :(得分:0)
试试这个..
$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);