mysqli_fetch_array()
函数在返回时是否删除了每个值?如果没有,当我完成循环后,如何回到数组的顶部?
我需要多次遍历列表,因为我正在使用它来生成唯一的用户名(如果已经采用了数字,则将其添加到结尾)。
$uniqueName = true;
while($row = mysqli_fetch_array($namesList)) {
if ($row['Username'] == $UserBase) {
$uniqueName = false;
}
}
$number = 0;
if ($uniqueName == true) {
$User = $UserBase;
}
else {
while ($uniqueName == false) {
$uniqueName = true;
$number++;
$tempList = $namesList2;
while($row = mysqli_fetch_array($tempList)) {
if ($row['Username'] == $UserBase . $number) {
$uniqueName = false;
}
}
}
$User = $UserBase . $number;
}
$namesList
是目前为止数据库中所有用户名的列表。基本上,$UserBase
是添加在一起的用户的名字和姓氏。目前发生的情况是,$User
最终成为$Userbase
,1
,即使它应该是2.但是,如果它是名称的第一个实例然后它不会添加任何东西(按预期工作)。
答案 0 :(得分:4)
您可以使用mysqli_fetch_all函数将所有结果作为数组返回,然后您可以像处理PHP中的任何其他数组一样进行操作:
$arr = mysqli_fetch_all($namesList);
答案 1 :(得分:3)
魔术
$data = array();
while ($row = mysqli_fetch_array($res))
{
$data[] = $row;
}
foreach ($data as $row) echo $row['name'];
foreach ($data as $row) echo $row['name'];
foreach ($data as $row) echo $row['name'];
foreach ($data as $row) echo $row['name'];
foreach ($data as $row) echo $row['name'];
foreach ($data as $row) echo $row['name'];