2011-06-24 3 views
0

Bon, alors je parcours les résultats qui contiennent deux identifiants de questions et deux réponses et j'essaie de faire correspondre les deux réponses avec les deux réponses de la soumission du formulaire. Je ne suis pas sûr de ce que je fais mal.Boucler correctement avec le tableau

<?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

N'obtenez-vous pas la sortie attendue? Avez-vous des erreurs? –

Répondre

1

Étant donné que votre question n'est pas clair en premier lieu, donc je suppose que la question que vous posez est "pourquoi vous n'êtes pas obtenir de résultats correspondants, lorsque vous avez les bonnes réponses à la base de données? ". Corrigez-moi, s'il vous plaît, si c'est faux.

La logique peut ressembler à ceci: -

<?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; 

?> 

Il est préférable d'avoir plus ségrégation des conditions logiques. Dans ce cas, ce sont vos deux réponses à vérifier.

Espérons que ça aide.

Questions connexes