通过数组正确循环

时间:2011-06-24 03:41:58

标签: php

好的,所以我循环查看包含两个问题ID和两个答案的结果,我正在尝试将两个答案与表单提交中的两个答案相匹配。 我不确定我做错了什么。

<?php

// Include the database page
require ('../inc/dbconfig.php');
require ('../inc/global_functions.php');

//Login submitted
if (isset($_POST['submit'])) {

// Errors defined as not being any
$errors = false;

if (trim($_POST['answer1']) == '') { $errors = true; }
if (trim($_POST['answer2']) == '') { $errors = true; }

// Error checking, make sure all form fields have input
if ($errors) {

    // Not all fields were entered error
    $message = "You must enter values to all of the form fields!";

    $output = array('errorsExist' => $errors, 'message' => $message);

} else {

    $userID = mysqli_real_escape_string($dbc,$_POST['userID']);
    $answer1Post = mysqli_real_escape_string($dbc,$_POST['answer1']);
    $answer2Post = mysqli_real_escape_string($dbc,$_POST['answer2']);
    $question1 = mysqli_real_escape_string($dbc,$_POST['question1']);
    $question2 = mysqli_real_escape_string($dbc,$_POST['question2']);

    $query = "SELECT * FROM manager_users_secretAnswers WHERE userID = '".$userID."'";
    $result = mysqli_query($dbc,$query);

    // Count number of returned results from query
    if (mysqli_num_rows($result) > 0) {

        while ($row = mysqli_fetch_array($result)) {   

            $answer = $row['answer']; 

            // Comparing the database password with the posted password
            if (($answer == $answer1Post) && ($answer == $answer2Post)) {



            } else {

                $errors = true;
                $message = "Your answers did not match the answers inside the database!";

                $output = array('errorsExist' => $errors, 'message' => $message);

            }


        }

    } else {

        $errors = true;
        $message = "We did not find any answers for your questions! Please consult the site administrator!";

        $output = array('errorsExist' => $true, 'message' => $message);

    }

}

}

//Output the result
$output = json_encode($output);
echo $output;

?>

1 个答案:

答案 0 :(得分:1)

由于你的问题一开始并不清楚,所以我假设你问的问题是“为什么你没有得到任何匹配的结果,当你在数据库中得到正确答案时吗”。如果这是错误的,请纠正我。

逻辑可以是这样的: -

<?php

// Include the database page
require ('../inc/dbconfig.php');
require ('../inc/global_functions.php');

// Login submitted
if (isset($_POST['submit'])) {

    // Errors defined as not being any
    $errors = false;

    if (trim($_POST['answer1']) == '') { $errors = true; }
    if (trim($_POST['answer2']) == '') { $errors = true; }

    // Error checking, make sure all form fields have input
    if ($errors) {

        // Not all fields were entered error
        $message = "You must enter values to all of the form fields!";

        $output = array('errorsExist' => $errors, 'message' => $message);

    } else {

        $userID = mysqli_real_escape_string($dbc, $_POST['userID']);
        $answer1Post = mysqli_real_escape_string($dbc, $_POST['answer1']);
        $answer2Post = mysqli_real_escape_string($dbc, $_POST['answer2']);
        $question1 = mysqli_real_escape_string($dbc, $_POST['question1']);
        $question2 = mysqli_real_escape_string($dbc, $_POST['question2']);

        $query = "SELECT * FROM manager_users_secretAnswers WHERE userID = '".$userID."'";
        $result = mysqli_query($dbc, $query);

        // Count number of returned results from query
        if (mysqli_num_rows($result) > 0) {

            while ($row = mysqli_fetch_array($result)) {

                $answer = $row['answer'];

                // Comparing the database password with the posted password
                if ($answer == $answer1Post) {

                    // The first answer is correct
                    $errors = false;
                    $message = "Your first answer is correct!";

                } else if ($answer == $answer2Post) {

                    // The second answer is correct
                    $errors = false;
                    $message = "Your second answer is correct!";

                } else {

                    $errors = true;
                    $message = "Your answers did not match the answers inside the 

                }

                $output = array('errorsExist' => $errors, 'message' => $message);

            }

        } else {

            $errors = true;
            $message = "We did not find any answers for your questions! Please consult the site administrator!";

            $output = array('errorsExist' => $true, 'message' => $message);

        }

    }

}

// Output the result
$output = json_encode($output);
echo $output;

?>

最好有更多的逻辑条件隔离。在这种情况下,这是你要检查的两个答案。

希望它有所帮助。