2017-10-01 1 views
1

QUESTION MISE À JOURscores Incrémentation d'erreur

Im un étudiant et nouveau pour php, et Im travaille actuellement sur un projet d'évaluation des compétences. Le score qui sera affiché doit être 0 si je réponds intentionnellement à toutes les questions incorrectes, mais alors le problème est que les scores augmentent encore. Que devrais-je faire? J'espère que quelqu'un pourra m'aider à corriger mes codes. Je vous remercie!

Le fil est le type de question qui sont ABM, HUMSS, TIGE, GAZ et TVL

if(isset($_POST['submit'])) { 
$ans = $_POST['ans']; 
$abmscore = 0; 
$humssscore = 0; 
$stemscore = 0; 
$gasscore = 0; 
$tvlscore = 0; 

if(!empty($ans)): 
    foreach($ans as $qID => $qVal) { 
    $qID = (int) $qID; 
    $qVal = (int) $qVal; 

    $query1= "SELECT COUNT(*) AS rightAnswer FROM tquestions WHERE test_id = $qID AND correctanswer = $qVal"; 
    $result= mysqli_query($conn, $query1); 
    $query2 = "SELECT strand FROM tquestions"; 
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

    $query2 = "SELECT strand FROM tquestions WHERE test_id = $qID"; 
    $result2 = mysqli_query($conn, $query2); 
    $row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC); 
    $strand =$row2['strand']; 

    if($row['rightAnswer']) { 
     if($strand == 'ABM') { 
      $abmscore++; 
     } 

     elseif ($strand == 'HUMSS') { 
      $humssscore++; 
     } 

     elseif ($strand == 'STEM') { 
      $stemscore++; 
     } 

     elseif ($strand == 'GAS') { 
      $gasscore++; 
     } 

     elseif ($strand == 'TVL') { 
      $tvlscore++; 
     }   
    } 
    } 
    endif; 
} 

Répondre

0

Vous ne fecth les lignes pour query2

$query1= "SELECT COUNT(*) AS rightAnswer 
      FROM tquestions WHERE test_id = $qID AND correctanswer = $qVal"; 
    $result= mysqli_query($conn, $query1); 
    // 
    $query2 = "SELECT strand FROM tquestions"; 
    $result2 = mysqli_query($conn, $query2); 
    $row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC); 
    $strand =$row2['strand']; 
    // 
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 
+0

Merci pour la réponse ! J'ai essayé le code ci-dessus mais le $ tvlscore est le seul qui s'incrémente ... Je pense que quelque chose ne va pas dans le cas contraire. Une idée de comment le résoudre? – Dza

+0

Ohh j'ai déjà vu quel est le problème. Je viens d'ajouter WHERE test_id = $ qID dans $ query2. Mais le problème est maintenant, les scores augmentent encore, même si les réponses sont fausses .. – Dza

+0

c'est une autre question ..mais semble que votre requête de brin n'est pas liée au fait que la question actuelle.est faux ou pas .. finalement vous devrait poster une autre question bien documentée avec l'échantillon de données approprié et le résultat attendu .. quand vous avez poste la nouvelle question, vous pouvez me commenter le lien – scaisEdge