Hallo ik heb een database met twee waarden punten en totpunten
nu probeer ik met deze code
mysql_query("UPDATE klaverjassen SET totpunten = '".$row['totpunten']." + $punten WHERE speler = $speler");
met een query haal ik de laatst bekende totpunten op en wil daar de in een formulier op gegeven punten bij optellen. Maar de waarde blijft in het nieuwe record op 0 nul staan
Alvast bedankt voor de hulp.
Echo voor de query eens wat er zit in:
$row['totpunten'], $punten en $speler.
Echo eventueel eens de volledige query.
Heb je foutafhandeling ingebouwd?
1) Geen foutenafhandeling zover ik zie
2) Tenzij $punten een escape heeft is er geen beveiliging en is je script gevoelig voor SQL-Injection
3) Mysql is verouderd, gebruik liever mysqli, of indien je wenst PDO
4) Waarom heb je wel quotes om $row['totpunten'] maar niet om $punten?
5) Wat ik denk is dat je dit zoekt:
mysql_query("UPDATE klaverjassen SET totpunten = 'totpunten + $punten' WHERE speler = '".$speler."'");
Beter in mysqli:
mysqli_query($con,"UPDATE klaverjassen SET totpunten = 'totpunten + $punten' WHERE speler = '".$speler."'");
Dat laatste kan natuurlijk noooooit werken. Nu heb je een quote voor een veldnaam in SQL en na een waarde uit php. Dat is echt aan alle kanten verkeerd.
En in elk geval, als je wilt optellen betekent het dat het getallen moeten zijn (integers of floats) en dus moet je gewoon helemaal geen quotes gebruiken.
Theoretisch ja, in de praktijk: nee.
mysqli is geen andere database, het is alleen een andere functie bibliotheek. Standaard is die tegenwoordig wel geinstalleerd, dus die kan je zonder problemen gebruiken.
Dat de code van Peter niet zou werken was al duidelijk overigens. Maar wat nog steeds wel de vraag is, is wat er in je variabelen zit, zoals Obelix al vroeg. En ook hoe het zit met de foutafhandeling.
Nog geen fout afhandeling en de variable tot punten zijn niks meer dan de wekelijkse resultaten optellen bij het totaal aantal punten:
$row['totpunten'] geeft het aantal punten van het vorige record van de betreffende speler en $punten zou in de afhandeling van het formulier daarbij moeten worden opgeteld zodat er volgende week een andere waarde hangt aan $row['totpunten']