首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中找不到变量

问在php中找不到变量
EN

Stack Overflow用户
提问于 2014-10-01 09:02:07
回答 1查看 104关注 0票数 1

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

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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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);
          ?>

它给出的误差没有找到变量,有没有人能帮忙?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-01 09:10:13

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

代码语言:javascript
复制
Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
)

从您的代码$cindx = 0;中,我们将看到索引0。因此,

代码语言:javascript
复制
echo $_SESSION['q_indx'][0];  //One way of doing it
echo $_SESSION['q_indx'][$cindx];  //Another way of doing it

编辑

不能将mysqli_result类型的对象用作第12行的C:\wamp\www\quiiz_portal\quiz_start.php中的数组,您能告诉我为什么会这样吗?

将MySQL查询更改为

代码语言:javascript
复制
$qstn = mysqli_query($con, "SELECT * FROM qstns where qid = '". $dsply[0] ."'");

编辑

您在第一个文件中丢失了session_start();。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26137732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档