Wapen Training fout...

  • PHP
    <?php
    
    
    if($_POST['submit'] && $row->training != 100 OR $row->training != "100")
    {
    	$insert = mysql_query("UPDATE schietbaan SET training = training + 1 WHERE id='2'");
    }
    
    
    ?>


    Dus, als het op 100 staat, dan hoort hij te stoppen met 1 erbij doen, maar dat doet hij niet 8-).

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Citaat van Regels

    Geef een duidelijke omschrijving van je probleem, post voldoende code en wees altijd vriendelijk voor mensen die je proberen te helpen.


    Laat $row eens zien. Je hoeft het trouwens niet als integer en string te testen. Het is het beste als je het gewoon als integer test.

    Totdat Stefan en Koen terug zijn van vakantie ben ik weer actief. Daarna ben ik weer weg ;)

  • Dit bedoel je?


  • Wat is er mis met een WHERE clause die controleert of training wel lager dan 100 is?
    Het is mogelijk (een kleine kans, maar mogelijk) dat een gebruiker twee keer de zelfde pagina vlak na elkaar aanvraagt, zodat PHP beide requests $row hebben uitgelezen voordat die de eerste die query heeft uitgevoerd.
    PHP denkt dus twee keer dat training nog lager is dan 100, terwijl het na de eerste keer precies 100 kan zijn en maakt er dan de tweede keer 101 van.
    Als je MySQL dit laat controleren zou dit volgens mij niet meer kunnen gebeuren...
    Die controlle in PHP is dus niet nodig, waar ik op zou controleren is op hoeveel rijen ([func]mysql_affected_rows[/func]) er gewijzigd zijn door die query, zijn dat er nul, dan weet je ook dat het al 100 is...

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!