Php 而mysqli_fetch_assoc的函数是无限的
我在一个会话中有两个HTML页面。在我的第一页上,我想创建一个数组,它保存在$\u会话变量中。在第二页,我想显示我的数组 我的第一页的PHP代码如下所示:Php 而mysqli_fetch_assoc的函数是无限的,php,session,Php,Session,我在一个会话中有两个HTML页面。在我的第一页上,我想创建一个数组,它保存在$\u会话变量中。在第二页,我想显示我的数组 我的第一页的PHP代码如下所示: <?php include ("../script/db_connect.php"); $select_questions = 'select * from questions '; if (isset($_POST["own"]) && $_POST["own"] == "No") { $sel
<?php
include ("../script/db_connect.php");
$select_questions = 'select * from questions ';
if (isset($_POST["own"]) && $_POST["own"] == "No") {
$select_questions .= 'where creator != '
. $_SESSION["id"];
}
$select_questions .= 'limit 3';
$questions_result = mysqli_query($con, $select_questions);
$_SESSION["questions"] = mysqli_fetch_assoc($questions_result);
mysqli_close($con);
?>
<?php while ($array = $_SESSION["questions"]) {
echo $array["question"]; } ?>
我第二页上的PHP代码如下所示:
<?php
include ("../script/db_connect.php");
$select_questions = 'select * from questions ';
if (isset($_POST["own"]) && $_POST["own"] == "No") {
$select_questions .= 'where creator != '
. $_SESSION["id"];
}
$select_questions .= 'limit 3';
$questions_result = mysqli_query($con, $select_questions);
$_SESSION["questions"] = mysqli_fetch_assoc($questions_result);
mysqli_close($con);
?>
<?php while ($array = $_SESSION["questions"]) {
echo $array["question"]; } ?>
当我转到第二页时,会显示一个无限循环,其中只有数组的第一个元素会反复显示。原因是什么?我在代码中找不到任何错误。请更改此选项
$\u SESSION[“questions”]=mysqli\u fetch\u assoc($questions\u result)代码>
to(这里我们从sql结果中获取所有行,而不仅仅是一行)
while($row=mysqli\u fetch\u assoc($questions\u result))$\u SESSION[“questions”][]=$row代码>
后来呢
foreach($\u SESSION[“questions”]as$quest){echo$quest[“question”];}
Do$array=array\u shift($\u SESSION[“questions”])
否则它会用相同的数据设置一个新的值,然后变成无穷大。但是如果您只使用mysqli\u fetch assoc在行上取,为什么要使用而使用($questions\u result)
?右边应该是,而($array=mysqli\u fetch\u assoc($questions\u result))
这一行效果更好,但有些条目会多次显示。因此,最后我没有得到3行(第1行、第2行、第3行),而是6行(第1行、第1行、第2行、第3行、第1行、第2行)。顺序很奇怪。@sebjel1它与会话变量的使用有关,在重新填充之前是否清空了它?此时为什么要使用$\u会话?重复您的逻辑,我在答案中的代码示例完全可以。Downvoter没有大脑。谢谢,我的问题是,我没有清空我的$\u会话变量。谢谢!