【发布时间】:2014-10-01 09:02:07
【问题描述】:
我使用会话将数组传递到另一个页面 我还传递了一个数组索引 现在我想访问那个特定的索引,但我不能这样做任何人都可以帮忙
这是我创建数组并将其存储在会话中的第一页
<?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 variable not found 任何人都可以帮忙吗?
【问题讨论】:
-
你的 SQL 不应该是“SELECT * FROM qstns where qid = '{$dsply[0]}'”吗?
-
如果我错了,请纠正我,但您要在这里完成的是访问
cindx,它是q_indx数组的整数(索引),两者都存储在会话变量中?如果是,那么您可以执行以下操作:$_SESSION['q_indx'][$_SESSION['cindx']]