$_post met database vergelijken

Status
Niet open voor verdere reacties.

gast0446

Gebruiker
Lid geworden
29 dec 2009
Berichten
373
Hallo allemaal,

Ik ben bezig met een quiz script en nu wil ik graag het antwoord dat ik gepost vergelijken met een antwoord in de database.
Dit gaat alleen fout.
Kan iemand mij vertellen wat er fout gaat en me even op weg helpen met het oplossen?

dit is het script:

PHP:
<?php    
    $aErrors = array();
    //  Maak een verbinding met de database
    
	include('mysqlgegevens.php');
	
    //  Controleer of het gelukt is
    if ( $rLink === false ) {
      $aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
    }
    else {
      //  Selecteer je database
    $bSelected = mysql_select_db( 'zeilenzoeken', $rLink );
      //  Controleer of het gelukt is
      if ( $bSelected === false ) {
        $aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
      }
      else {
        //  Construeer een opdracht voor de database
        $sQuery = "SELECT   id
                   ,        vraag
                   ,		antwoordA
                   ,		antwoordB
               	   ,        antwoordC
               	   ,		goede_antwoord
               	   ,		uitleg_goede_antwoord
                   FROM     quiz
                   ORDER BY id ASC";
        //  Stuur de opdracht op
        $rResult = mysql_query( $sQuery, $rLink );
        //  Controleer of het gelukt is
        if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
        }
        elseif ( mysql_num_rows($rResult) == 0 ) {
          $aErrors[] = 'Wees de eerste en schrijf een reactie in het gastenboek!';
        }
      }
    }
    //  Als er dingen fout zijn gegaan, vertel het
    if ( count($aErrors) > 0 ) {
      echo '<p class="error">';
      foreach ( $aErrors as $sError ) {
        print $sError . '<br />';
      }
      echo '</p>';
    }
    //  Geen fouten? Dan maken we een lijst!
    else {
      while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
        //  We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
        //  Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt     
		echo '
		<form method="post" action="">
		<p>
	    '.htmlspecialchars($aBericht['vraag']).'
		</p>
		<p>
	    <input type="submit" name="a" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
    	<input type="submit" name="b" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
    	<input type="submit" name="c" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
		</p>
		</form>
        ';
      }
    }
    $row = mysql_fetch_assoc($rResult);
	if($_SERVER['REQUEST_METHOD'] == 'POST')
	{
    	if(isset($_POST['a']) && $row['goede_antwoord'] == 'A')
    	{
    	    ?><script type="text/javascript">alert("Goed geantwoord");</script><?php
    	}
    	if(isset($_POST['b']) && $row['goede_antwoord'] == 'B')
    	{
    	    ?><script type="text/javascript">alert("Goed geantwoord");</script><?php
    	}
    	if(isset($_POST['c']) && $row['goede_antwoord'] == 'C')
    	{
    	    ?><script type="text/javascript">alert("Goed geantwoord");</script><?php
    	}
    	else
    	{
    	    ?><script type="text/javascript">alert("Niet goed geantwoord");</script><?php
    	}
	}
?>
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>

Alvast bedankt!

gast0446
 
Hallo gast0446,

kun je aangeven wat voor fout je krijgt? Of als je geen fout krijgt wat de waarde van $_POST in je script is, dat is even wat makkelijker zoeken naar een fout.
 
Als ik op het goede antwoord van een vraag klik krijg ik de melding dat het antwoord fout was, het probleem zit hem dus waarschijnlijk in het $_POST gedeelte of/en het selecteren uit de database.
 
Krijg je nu niet meerdere keren een alert?

Volgens mij kun je beter if-elseif-else gebruiken.
PHP:
 if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        if(isset($_POST['a']) && $row['goede_antwoord'] == 'A')
        {
            ?><script type="text/javascript">alert("Goed geantwoord");</script><?php
        }
       elseif(isset($_POST['b']) && $row['goede_antwoord'] == 'B')
        {
            ?><script type="text/javascript">alert("Goed geantwoord");</script><?php
        }
       elseif(isset($_POST['c']) && $row['goede_antwoord'] == 'C')
        {
            ?><script type="text/javascript">alert("Goed geantwoord");</script><?php
        }
        else
        {
            ?><script type="text/javascript">alert("Niet goed geantwoord");</script><?php
        }
    }
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan