Nur in die Datenbank schreiben wenn genug Punkte vorhanden

Tomas1967

Mitglied
Hallo,

mal eine Frage. Ich habe so ein Punktesystem. Jetzt habe ich zusätzlich eine Funktion eingebaut, womit sich die User gegenseitig etwas schenken können.

Verschenke ich ein Herz werden 100 Punkte vom Punktekonto abgezogen. Verschenke ich eine Rose werden 75 Punkte vom Punktekonto abgezogen u.s.w.

Nun verstehe ich den Aufbau nicht so ganz, Wie bekomme ich es hin, dass nur in die Datenbank geschrieben wird, wenn genug Punkte vorhanden sind?

Code:
if($_POST['gabe'] == "Herz") {

if($ePointUsers <= 100) {

echo"zu wenig punkte";

} else {

$oSql->fQuery("update ".DBPREFIX."sys_user SET nLogins = nLogins - 100 WHERE nUsrId = '".$aSessiondata['nUsrId']."'");
}
}

if($_POST['gabe'] == "Rose") {

if($ePointUsers <= 75) {

echo"zu wenig punkte";

} else {

$oSql->fQuery("update ".DBPREFIX."sys_user SET nLogins = nLogins - 75 WHERE nUsrId = '".$aSessiondata['nUsrId']."'");
}
}

Wie müsste es nun weitergehen mit dem INSERT INTO? Oder wie müsste das korrekt aufgebaut sein? Er soll die Daten nur in die Datenbank schreiben, wenn genug Punkte (siehe Regeln oben) vorhanden sind?

Ich hoffe ich konnte mein Problem verständlich darstellen.
 
Wenn du bei dein jetzigen Aufbau bleiben willst. Wäre es das einfachste, wenn du von dem Betreffenden User die Punkte Ausliest.
Dann deiner Variablen $ePointUsers die Punktzahl zuweist.

PHP:
$query=mysql_query("SELECT nLogins FROM ".DBPREFIX."sys_userWHERE nUsrId = '".$aSessiondata['nUsrId']."'");
 $row=mysql_fetch_array($query);
 $ePointUsers=$row['nLogins'];

Besser wäre es aber vielleicht, wenn du das schon Prüfst, bevor der Nutzer das Herz bzw. die Rose absendet und dem Nutzer garnicht erst die Möglichkeit gibst es abzusenden.
 
Die Punkteanzahl wird ja schon ausgelesen und mit $ePointUsers ausgegeben. Da hast du mich wohl falsch verstanden.

Hat ein User 120 Punkte kann er ein Herz für 100 verschenken. Hat er nur 80 Punkte kann er kein Herz verschenken es kommt die Meldung - zu wenig punkte.



Diese werden ihm dann per -
Code:
if($_POST['gabe'] == "Herz") {

if($ePointUsers <= 100) {

echo"zu wenig punkte";

} else {

$oSql->fQuery("update ".DBPREFIX."sys_user SET nLogins = nLogins - 100 WHERE nUsrId = '".$aSessiondata['nUsrId']."'");
}
}

vom Punktekonto abgezogen.

Nun folgt aber noch ein INSERT INTO, was die Daten vom verschenkten Herz in die Datenbank schreibt (von wem kam das Herz, sein 'Name, seine ID, das Datum u.s.w.). Dieses INSERT INTO soll aber nur ausgeführt werden, wenn die Regeln aus den if-Abfragen es zulassen.

Wie verbinde ich die if-Abfragen mit dem INSERT INTO?

Wenn genug Punkte vorhanden die Punkte vom Punktekonto abziehen (das funktioniert ja schon mit den if-Abfragen) und die Daten per INSERT INTO in die Datenbank schreiben. Wenn nicht genug Punkte vorhanden sind das INSERT INTO nicht ausführen.
 
Zuletzt bearbeitet:
Zurück