在php中找不到变量
我使用会话将数组传递到另一个页面 我还传递了数组的索引 现在我想访问那个特定的索引,但我不能这样做,有人能帮忙吗 这是我创建数组并将其存储在会话中的第一页在php中找不到变量,php,arrays,session,Php,Arrays,Session,我使用会话将数组传递到另一个页面 我还传递了数组的索引 现在我想访问那个特定的索引,但我不能这样做,有人能帮忙吗 这是我创建数组并将其存储在会话中的第一页 <?php //connection made $con = mysqli_connect("localhost", "root", "", "QSTNS"); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_
<?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);
?>
从中,我们可以收集到$\u SESSION['q\u 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\u result类型的对象用作第12行C:\wamp\www\quiiz\u portal\quick\u start.php中的数组,您能告诉我为什么会在那里吗
将MySQL查询更改为
$qstn = mysqli_query($con, "SELECT * FROM qstns where qid = '". $dsply[0] ."'");
编辑
您缺少会话_start()您的SQL不应该是“SELECT*from qstns where qid='{$dsply[0]}'”吗?如果我错了,请纠正我,但您想在这里完成的是accesscindx
,它是q\u indx
数组的整数(索引),这两个数组都存储在会话变量中?如果是的话,那么你可以这样做:$\u SESSION['q_indx'][$\u SESSION['cindx']]
@hd我试过了,它产生了另一个错误,不能在C:\wamp\www\quiiz_portal\quick_start.php的第12行使用mysqli_result类型的对象作为数组。你能告诉我为什么这个错误不是从这里产生的吗。我将更新我的答案以解决此问题you@hd我已经编辑了这个查询,你能告诉我哪里出了问题吗我是PHPY的新手你没有session_start()代码>在您的第一个文件中。您可以这样做,但要在打开php标记之后进行。
$qstn = mysqli_query($con, "SELECT * FROM qstns where qid = '". $dsply[0] ."'");