【发布时间】:2017-04-17 00:36:43
【问题描述】:
function chkQuestions($info)
{
$query = $this->handle->prepare("SELECT * FROM tbltest");
$query->execute();
$rows = $query->fetchAll();
$getPost = $query->rowCount();
foreach($rows as $row) {
for($i = 1; $i <= $getPost; $i++) {
$answerID[$i] = array($info['answer'.$i]);
$lo = array($answerID);
}
foreach($answerID as $question) {
if(array_key_exists($row['answer'],$question)) {
$test = "found";
return $test;
} else {
return $question;
}
}
}
}//chkQuestions
以上是我的函数,一切正常,但是当我将数据库中名为 answer 的行与数组进行比较时,它不起作用?
我尝试在值中进行硬编码,它可以正常工作,但不适用于数组。
我查看了数组的值,该值确实存在。
在逻辑$answerID[$i] = array($info['answer'.$i]); = option1 中,如果数组值option1 = 设置为option1 的数据库行答案,则返回找到,但它告诉我找不到它。
array(1)
{
[0]=> string(7) "option1"
}
上面是数组$question 的dum_var。有什么帮助吗?
foreach($questions as $question)
{
?>
<h3><?php echo $question['question'] ?></h3>
<div class = "col-xs-12">
<input type="radio" name="answer<?php echo $question['testID'] ?>" id="answer<?php echo $question['testID'] ?>" value="<?php echo $question['option1']?>" />
<label for="question-1-answers-A">A)<?php echo $question['option1'] ?> </label>
</div>
<div class = "col-xs-12">
<input type="radio" name="answer<?php echo $question['testID'] ?>" id="answer<?php echo $question['testID'] ?>" value="<?php echo $question['option2']?>" />
<label for="question-1-answers-B">B)<?php echo $question['option2'] ?></label>
</div>
<div class = "col-xs-12">
<input type="radio" name="answer<?php echo $question['testID'] ?>" id="answer<?php echo $question['testID'] ?>" value="<?php echo $question['option3']?>" />
<label for="question-1-answers-C">C)<?php echo $question['option3'] ?></label>
</div>
<div class = "col-xs-12">
<input type="radio" name="answer<?php echo $question['testID'] ?>" id="answer<?php echo $question['testID'] ?>" value="<?php echo $question['option4']?>" />
<label for="question-1-answers-D">D)<?php echo $question['option4'] ?></label>
<br>
<br>
</div>
<?php
}
echo "<input type='hidden' name='subaction' id='subaction' value='chkQuestion'> <button class='btn btn-primary' name='submit' type='submit'>Submit</button> </form>";
}
else
echo "No Quiz Found </form>";
?>
</div>
【问题讨论】:
-
我会帮你的。有几点我觉得需要改正。让我们从澄清结果集开始。您正在选择
*。您是否仅使用表中answer列中的值?如果是这样,请在您的查询中按字面意思命名它。我有后续问题,但我会等到您就第一点做出回应后再向您提出更多问题。 -
实际上,您应该先修复之前问题中的表单字段命名问题,然后再进行此问题所需的所有修复。请更新此问题以反映此处所做的更改。
-
您好,我已经修复了在数据库中寻找答案的语句。并且所有之前的问题都已排序,所有表单信息都到达此功能
-
所以我们使用
"SELECT answer FROM tbltest"作为查询?什么是handle->,只是连接吗?下一个问题是,为什么要使用fetchAll()?这将返回两个带有键的重复元素:0和answer用于每一行。fetch(PDO::FETCH_NUM)会更好吗?您的嵌套循环非常令人担忧;整个部分都需要仔细检查。 -
您似乎没有在查询中使用任何 ORDER BY 子句。您绝对确定您的结果集将按照您的
$info['answer']数组的排序顺序出现吗?