Jan: MySQL-Datensatz aktualisieren/Datenfeldwert erhöhen

Hallo Leute!

Folgender Fall:

Ich hab eine kleine Datenbank *spieler*, die u.a. ein Feld "Name" und ein Feld "Gesamtpunkte" enthält.

Es gibt dazu ein kleines Formular, wo ich per Dropdownmenü einen Spieler auswählen kann (Namen kommen aus DB "spieler") und daneben die zuletzt gemachten Punkte.

Nun möchte ich, dass beim Abschicken des Formulars, das Feld "Gesamtpunkte" des ausgewählten Spielers um die eingetragenen Punkte erhöht wird.

Also den letzten Gesamtstand auslesen und um die aktuellen Punkte erhöhen ist kein Problem, aber dann den entsprechenden Datensatz mit diesen Werten zu aktualisieren, ohne einen neuen Datensatz anzulegen, weiß ich nicht :o(

Hat mir hier jemand einen Tipp?

Gruß, Jan

  1. Also den letzten Gesamtstand auslesen und um die aktuellen Punkte erhöhen ist kein Problem, aber dann den entsprechenden Datensatz mit diesen Werten zu aktualisieren, ohne einen neuen Datensatz anzulegen, weiß ich nicht :o(

    Äh, Du hast sicher schonmal einen Blick in die MySQL-Anleitung geworfen? Und dabei bist Du wirklich nicht über den wahrlich zentralen Befehl update gestolpert? Falls nicht: http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Data_Manipulation.

    Gruß,
      soenk.e

  2. mysql_query("UPDATE spieler SET punkte='$punkte' WHERE id='$user_id'",$db);

    damit funktioniert es. musst nur daran denken, in $user_id den primärschlüssen zu setzen (des users, dessen datensatz du aktualisieren willst; gegebenenfalls ändere einfach die variable) und in $punkte die anzahl an punkten gehört, die du in die datenbank schreiben willst. sollte die tabelle bzw. die spalten anders heißen, dann ändere das bitte.

    greetz
    Lutz Mahlstedt

    1. Aloha!

      mysql_query("UPDATE spieler SET punkte='$punkte' WHERE id='$user_id'",$db);

      UPDATE kann auch rechnen:

      mysql_query("UPDATE spieler SET gesamtpunkte=gesamtpunkte + $neuepunkte WHERE id=$userid");

      - Sven Rautenberg