Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

PHP & MySQL: gegevens uit database vergelijken

snotspill
7 antwoorden
  • ik ben net begonnen met php als opdracht voor mijn stage. ik ben bezig met het ontwikkelen van een online toetsingssysteem. met behulp van dit systeem kun je toetsen afnemen en worden alle gegevens opgeslagen in een mysql tabel

    de toets bestaat uit drie pagina's: de aanmeld pagina, de toets pagina en de resultaten pagina.

    om te voorkomen dat iemand tweemaal een toets kan doen wil ik een beveiliging inbouwen. deze beveiliging controleerd of iemand al eerder een toets gedaan heeft en ziet er als volgt uit

    na het afronden van de toets worden opgeslagen: naam, klas, antwoorden en resultaat
    bij het starten van de toets wordt bij het aanmelden gecontroleerd of degene die zich aanmeld al voorkomt in de database. indien dat zo is wordt het opbouwen van de pagina afgebroken met [ die (toets al gedaan) ]

    ik wil graag weten hoe je zo'n controle uitvoert
  • Scriptrequests worden over het algemeen niet echt gewaardeerd. Probeer liever de code te geven en beschrijf het probleem dat je ermee hebt.

    Hoe dan ook, ik zou als ik jou was ervoor zorgen dat je iedereen die meedoet uniek kunt identificeren, bijvoorbeeld met een collegekaartnummer of studentnummer. Aan dit nummer hang je alle informatie van die persoon, dit hoeft dus maar één keer ingevoerd te worden. Elke volgende keer volstaat in principe het unieke nummer evt icm een wachtwoord.

    In een andere tabel plaats je de resultaten icm het unieke nummer, via een goede query is vervolgens heel makkelijk te bepalen of een toets al gedaan is.

    - Bas
  • [code:1:fadfb4923e] mysql_connect('localhost','root','')or die("Sorry, database Problems. <a href=\"javascript:history.go(-1);\">probeer het nog eens</a>.");
    mysql_select_db('toetsgegevens');
    $CONTROLE = ("SELECT vraag1 FROM toetsgegevens WHERE voornaam = $voornaam AND achternaam = $achternaam");
    if ($controle) die ("je hebt de toets al eens uitgevoerd <a href=\"javascript:history.go(-1);\">probeer het nog eens</a>.");[/code:1:fadfb4923e]

    wat ik zoek is een manier om een gegeven uit de database op te slaan als variabele. in dit geval de inhoud van vraag1 aan de hand van voor en achternaam
  • Lijkt mij handig als je ook even de query uitvoert met mysql_query

    Daar staat ook meteen hoe je het weer moet uitlezen etc…
  • ik kom er nog niet uit. ik heb de volgende code nu
    [code:1:024d2b0215]
    $controle = failed; //standaardwaarde;
    echo $controle //failed;
    mysql_connect('localhost','root','')or die (melding);
    mysql_select_db('toetsgegevens');
    $query = "SELECT vraag1 FROM toetsgegevens WHERE voornaam='$voornaam' AND achternaam='$achternaam'";
    echo $query // $voornaam en $achternaam worden correct ingevoerd;
    $controle = mysql_query($query);
    print ("controle: $controle") // $controle blijft leeg;
    if ($controle) die ("je hebt de toets al eens uitgevoerd.");
    [/code:1:024d2b0215]

    ik wil graag dat de waarde van "vraag1" wordt opgeslagen als de variabele $controle maar inplaats van die waarde wordt er een lege waarde opgeslagen terwijl er wel een waarde in staat
  • Gokje:

    $controle = mysql_query($query[b:1e1d12aac7]->value[/b:1e1d12aac7]);
  • [quote:6afdf1332e="snotspill"]ik kom er nog niet uit. ik heb de volgende code nu
    [code:1:6afdf1332e]
    $controle = failed; //standaardwaarde;
    echo $controle //failed;
    mysql_connect('localhost','root','')or die (melding);
    mysql_select_db('toetsgegevens');
    $query = "SELECT vraag1 FROM toetsgegevens WHERE voornaam='$voornaam' AND achternaam='$achternaam'";
    echo $query // $voornaam en $achternaam worden correct ingevoerd;
    $controle = mysql_query($query);
    print ("controle: $controle") // $controle blijft leeg;
    if ($controle) die ("je hebt de toets al eens uitgevoerd.");
    [/code:1:6afdf1332e]

    ik wil graag dat de waarde van "vraag1" wordt opgeslagen als de variabele $controle maar inplaats van die waarde wordt er een lege waarde opgeslagen terwijl er wel een waarde in staat[/quote:6afdf1332e]

    Het resultaat van mysql_query is een resource

    Als de query syntaxfouten bevat, is het resultaat FALSE.
    De query zal waarschijnlijk wel goed gaan (mits alle velden zo heten en de table bestaat) en dat is hetgene wat je test.
    Wat je [b:6afdf1332e]wil[/b:6afdf1332e] testen is of de query ook resultaten heeft. Dus:
    [code:1:6afdf1332e]
    <?php
    if( mysql_num_rows($controle) > 0 )
    {
    echo "Je hebt de toets al uitgevoerd";
    }
    else
    {
    // ga verder met de toets
    }
    ?>
    [/code:1:6afdf1332e]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.