Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将随机数据保存到数据库而不重复-php_Php_Random_Save - Fatal编程技术网

将随机数据保存到数据库而不重复-php

将随机数据保存到数据库而不重复-php,php,random,save,Php,Random,Save,这是一个考试系统,我随机问了一个问题,我的问题是如何保存它并确定它是否已经保存在数据库中。 下面是随机的代码,为什么在我点击下一步之后,它甚至没有一个动作,它发布了未定义的索引“sub”,但我已经在顶部声明了它。如果数据是随机的,如何保存数据并避免重复保存的数据 <? $exam_id = $_SESSION['examreference_id']; $sub_id = $_GET['sub']; $count=0; $con = mysql_connect("localhost","ro

这是一个考试系统,我随机问了一个问题,我的问题是如何保存它并确定它是否已经保存在数据库中。
下面是随机的代码,为什么在我点击下一步之后,它甚至没有一个动作,它发布了未定义的索引“sub”,但我已经在顶部声明了它。如果数据是随机的,如何保存数据并避免重复保存的数据

<?
$exam_id = $_SESSION['examreference_id'];
$sub_id = $_GET['sub'];
$count=0;
$con = mysql_connect("localhost","root","");
            if(!$con)
            {
            die('Could not connect:'. mysql_error());
            }
            mysql_select_db("db_compre",$con);
        $result2 = mysql_query("SELECT * FROM examquestion_table WHERE examreference_id = '$exam_id' AND subjectreference_id = '$sub_id'");

        while($info2 = mysql_fetch_array($result2))
            {   
                $count++;   
            }           

        mysql_close($con);?>
    <tr>
        <td colspan  = "2">     <?
        $con = mysql_connect("localhost","root","");
            if(!$con)
            {
            die('Could not connect:'. mysql_error());
            }
            mysql_select_db("db_compre",$con);
        $result = mysql_query("SELECT * FROM examquestion_table WHERE examreference_id = '$exam_id' AND subjectreference_id = '$sub_id' ORDER BY RAND() LIMIT 1");

        while($info = mysql_fetch_array($result))
            {   
                echo "<tr><td ><label>" . " Your time limit is ".$info['totalTime'] ."&nbsp&nbsp". "second(s)" . "</label></td></tr>";
                echo "<tr><td ><label>" . $info['question_data'] . "</label></td></tr>";
                echo "<tr><td colspan ='2'><hr size = '5' color = 'orange'></td></tr><tr>";     
                echo "<tr><td colspan  = '2'><input type = 'checkbox' name='answer' onClick='javascript:checkone(0)' value = '100'><label>". $info['choice1_data'] ."</label></td></tr>";
                echo "<tr><td colspan  = '2'><input type = 'checkbox' name='answer' onClick='javascript:checkone(1)' value = '100'><label>". $info['choice2_data'] ."</label></td></tr>";
                echo "<tr><td colspan  = '2'><input type = 'checkbox' name='answer' onClick='javascript:checkone(2)' value = '100'><label>". $info['choice3_data'] ."</label></td></tr>";
                echo "<tr><td colspan  = '2'><input type = 'checkbox' name='answer' onClick='javascript:checkone(3)' value = '100'><label>". $info['choice4_data'] ."</label></td></tr>";
            }
        mysql_close($con);?>

问题的措辞非常混乱,但第一句说“我提出了一个随机问题,我的问题是如何保存它并确定它是否已经保存在数据库中。”

试一试,也许这就是你想要的:

<?php
    $con = mysql_connect("localhost","root","") or die('Could not connect:'. mysql_error());
    mysql_select_db("db_compre", $con); 

    $result = mysql_query("SELECT 1 FROM examquestion_table WHERE examreference_id = '{$exam_id}' AND subjectreference_id = '{$sub_id}'");
    list($exists) = mysql_fetch_row($result2);

    if (!$exists)
        mysql_query("INSERT INTO examquestion_table (examreference_id, subjectreference_id) VALUES ('{$exam_id}', '{$sub_id}')");

    mysql_close($con);
?>

这将向您显示每个数据库中的数据。

如果我答对了,您将为数据库提取问题,用户将回答这些问题。 您希望确保问题不会被多次提出,并且您希望 也可以保存访问者的答案

如果这是您的意思,那么您应该创建另一个表来指示已提出的问题,同一个表还将保存所选的答案

主要问题是:如何将问题与访问者联系起来? 如果您有会员系统,则应将问题与用户ID关联, 否则,请使用随机值为microtime()或某个唯一值的cookie

+用户回答 -身份证 -问题编号 -选择答案 -用户统一id

当您从数据库中提取问题时,请使用JOIN以确保问题的ID不存在于“user\u answers”中的“user\u unique\u ID”

您需要创建一个函数,将所问问题和所选选项添加到此表中。
我看到您使用的是js onclick,您需要调用一个运行该函数的php文件。

第一件事。请在你的问题上应用一些语法规则和标点符号,很难理解你的意思。我根本看不出你在代码中使用索引
sub
。@jprofitt-它位于php文件的顶部,现在我将它移到该部分中。你不是在那里声明它,而是试图访问它。如果您的URL不包含
sub
,则会通知您。它需要类似于
http://www.yoursite.com/page.php?sub=foo
变量
$\u GET['sub']
存在。感谢您的建议,也许我可以添加您所说的内容,您可以给我更多的想法。不客气,请尝试编辑您的问题并更好地解释您的问题(只是Stackoverflow中基本用法的提示)@ga_-ra:在您解决问题之前,PHP通知仍然会显示。我发布的代码将帮助您找出问题所在,以便您能够找到问题并加以解决。在脚本开头运行调试代码时得到的输出是什么?当我保存并刷新时,会显示get:array(1){[“sub”]=>string(1)“3”}POST:array(0){},但当我单击下一个get:array(0){}POST:array(0){}注意:C:\xampp\htdocs\compre\answersheet.php中的未定义索引:sub位于第57行,因此当您“单击下一步”时,您没有在GET数组中传递“sub”。GET数组从URL获取其值,因此您需要调用URL,类似于“answerssheet.php?sub=3”,或者通过另一个表单传递值。
<?php
    echo "GET:";
    var_dump($_GET);

    echo "<br /><br />POST:";
    var_dump($_POST);
?>