在php中找不到变量


variable not found in php

我使用会话将数组传递给另一个页面我还传递了数组的索引现在我想访问那个特定的索引,但我做不到,有人能帮助吗

这是我创建数组并将其存储在会话中的第一页

<?php
//connection made
$con = mysqli_connect("localhost", "root", "", "QSTNS");
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//-----------------two variables entered in datavbase------------
$user = mysqli_real_escape_string($con, $_POST['user']);
$user1 = mysqli_real_escape_string($con, $_POST['user1']);
$sql = "INSERT INTO student (name,rln,scr)VALUES ('$user1','$user','0')";
if (!mysqli_query($con, $sql)) {
    die('Error: ' . mysqli_error($con));
}
$res = mysqli_query($con, 'SELECT COUNT(*) FROM qstns');
$row = mysqli_fetch_array($res);
echo $row[0];
$size = $row[0];
//creating an array of size equal to number of questions in DATABASE....
$q_indx = array(); //question indexes without permutation 
$attmpt = array(); //check if a question attempted or not
$score = array();  //score per question initially empty    
for ($i = 0; $i < $size; $i++) {
    array_push($q_indx, $i);
    array_push($attmpt, -1);
    array_push($score, 0);
}
$cindx = 0;
session_start();
$_SESSION['q_indx'] = $q_indx;             //HERE THAT SESSION IS CREATED
$_SESSION['attmpt'] = $attmpt;
$_SESSION['score'] = $score;
$_SESSION['cindx'] = $cindx;
header('Location: quiz_start.php');
mysqli_close($con);
?>

这是quiz_start.php

<?php
       session_start();
      $con=mysqli_connect("localhost","root","","QSTNS");
        if (mysqli_connect_errno()) {
         echo "Failed to connect to MySQL: " . mysqli_connect_error();
          }
       $dslpy=$_SESSION['q_indx'][$_SESSION['cindx']] ;
          echo $dsply ;
          //$qstn = mysqli_query($con,"SELECT * FROM qstns where qid = '". $dsply[0] 
           ."'");
            //echo $qstn['qname'] . ''n';
          mysqli_close($con);
          ?>

它给出错误dsply变量未找到有身体能帮上忙吗?

从这个脚本中,我们可以收集到$_SESSION['q_indx']包含一个数字数组,如下所示;

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
)

根据您的代码$cindx = 0;,因此我们正在查看索引0。因此,

echo $_SESSION['q_indx'][0];  //One way of doing it
echo $_SESSION['q_indx'][$cindx];  //Another way of doing it

编辑

在第12行的C:''wamp''www''quiiz_portal''quiz_start.php中,不能使用mysqli_result类型的对象作为数组。你能说出它为什么存在吗

将MySQL查询更改为

$qstn = mysqli_query($con, "SELECT * FROM qstns where qid = '". $dsply[0] ."'");

编辑

您的第一个文件中缺少session_start();