而mysqli_fetch_assoc的while函数是无限的

时间:2017-03-10 13:04:34

标签: php session

我在会话中有两个HTML页面。在我的第一页上,我想创建一个数组,该数组保存在$ _SESSION变量中。在第二页,我想显示我的数组。

我的第一页的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代码如下所示:

<?php while ($array = $_SESSION["questions"]) {
       echo $array["question"]; } ?>

当我转到第二页时,会显示一个无限循环,其中只有我的数组的第一个元素反复显示。这是什么原因?我在代码中找不到任何错误。

1 个答案:

答案 0 :(得分:-1)

更改此

null

to(这里我们从sql结果中获取所有行,而不仅仅是一行)

$_SESSION["questions"] = mysqli_fetch_assoc($questions_result);

以后再做

while($row=mysqli_fetch_assoc($questions_result)) $_SESSION["questions"][] = $row;