循环是正确的,但没有给出正确的编号。这些代码有什么问题?

时间:2014-10-11 19:59:23

标签: php mysqli

我想在状态栏中显示编号问题,所以我这样做,

for($i=0; $i<count($_POST['question']); $i++){
    $user=addslashes($_POST['user'][$i]);
    $question=addslashes($_POST['question'][$i]);
    $optA=addslashes($_POST['optA'][$i]);
    $optB=addslashes($_POST['optB'][$i]);
    $optC=addslashes($_POST['optC'][$i]);
    $optD=addslashes($_POST['optD'][$i]);
    $correct=addslashes($_POST['correct'][$i]);
    $qtype=addslashes($_POST['qtype'][$i]);
    $category=addslashes($_POST['category'][$i]);
    $numbering=$i;

    if($correct!=NULL){
    $insert="insert into tbl_randomq(username, question, optA, optB, optC, optD, correct, qtype, category, numbering) values('$user','$question','$optA','$optB','$optC','$optD','$correct', '$qtype', '$category', $numbering);";
    $insertrs=mysqli_query($con,$insert);
}
    }

有了这些,$ numbering的预期结果将是1,2,3,4,5,6,7,8,9 ......,但结果集看起来像1,2,3,4 ,5,8,9,10 ...

为什么6和7没有出现? :(它破坏了系统。请帮助这些。我错过了一些参数或什么?

1 个答案:

答案 0 :(得分:0)

  

为什么不出现6和7?

因为if($correct!=NULL)正在返回false。这意味着$_POST['correct'][$i]未设置或正被类型转换为等于null的值。您需要检查提交的帖子数据,以便正确提交6和7的verift数据。

关于类型转换/杂耍:

$a = null;
echo $a == null; // true
echo $a === null; // true


$a = 0;
echo $a == null; // true
echo $a === null; // false

$a = '';
echo $a == null; // true
echo $a === null; // false

查看this page以获取有关PHP类型如何变换的更多信息。