我使用会话将一个数组传递到另一个页面,我还传递了一个数组索引,现在我想访问这个特定的索引,但是我不能这样做,有人能帮忙吗?
这是我创建数组并将其存储在会话中的第一页。
<?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);
?>它给出的误差没有找到变量,有没有人能帮忙?
发布于 2014-10-01 09:10:13
从这个剧本中,我们可以收集到$_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编辑
不能将mysqli_result类型的对象用作第12行的C:\wamp\www\quiiz_portal\quiz_start.php中的数组,您能告诉我为什么会这样吗?
将MySQL查询更改为
$qstn = mysqli_query($con, "SELECT * FROM qstns where qid = '". $dsply[0] ."'");编辑
您在第一个文件中丢失了session_start();。
https://stackoverflow.com/questions/26137732
复制相似问题