Zum Inhalt springen

zeitliches MYSQL Update (Punktesystem)


Empfohlene Beiträge

Hallo.

Habe vor, für meine community ein Punktesystem zu programmieren.

Soll folgende funktion erfüllen:

Alle 3 Minuten die ein User in der Community verbringt, sollen 3 Punkte gutgeschrieben werden.

Habe folgenden Code zusammengefrimelt:


<?php

### Datenbankverbindung ###

$update = time()-180;
$jetzt = time();

$sql="SELECT punkte + 3 as punkteneu FROM Community_Points WHERE name LIKE '$name' AND time < '$update'";

$ergebnis = mysql_query($sql);
while($row = mysql_fetch_object($ergebnis))
{
$aendern = "UPDATE Community_Points SET punkte = '$row->punkteneu' WHERE name LIKE '$name' AND time < '$update'";
}
$pruef=mysql_query("SELECT time FROM Community_Points WHEREtime < '$update'")
if(@mysql_fetch_array($pruef)) {
echo "Punktestand: $row->punkteneu";
} else {
mysql_query("INSERT INTO Community_Points (name, time) VALUES ('$name', '$jetzt')") or die(mysql_error());
}
?>

[/PHP]

Zur Erklärung:

Das Script ignoriert als erstes alle angaben und setzt am schluss die aktuelle zeit in die db.

danach prüft es ob seit dem letzten eintrag 3 minuten vergangen sind. wenn ja, trägt addiert es den altenpunktestand + 3 und definiert ihn als neuenpunktestand. dieser überschreibt dann den alten.

Ist das Script so okay oder würdet ihr was besser machen???

Sind Fehler enthalten???

Weiss ja ned... vieleicht wiss ihr ja ne bessere lösung sowas zu realisieren...

Kann leider keine cronjobs auf meinem webspace laufen lassen....

THX schonmal :beagolisc

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab das script nochmal überarbeitet ^^

waren doch nen paar logikfehler von mir drinn :floet:

Nu ja hier der code:

<?php



$update = time()-180;
$jetzt = time();
$wert = 1;

$sql = mysql_query("UPDATE Community_Points SET punkte = punkte + 3 WHERE time < $update AND name LIKE $name") or die(mysql_error()); //Zählt 3 Punkte nach 3 minuten hinzu

$sql2 = mysql_query("DELETE wert FROM Community_Points WHERE time < $update AND name LIKE $name") or die(mysql_error());

$pruef=mysql_query("SELECT wert FROM Community_Points WHERE wert = $wert AND name LIKE $name") or die(mysql_error());

if(@mysql_fetch_array($pruef)) {

$ergebnis = mysql_query($sql);
while($row = mysql_fetch_object($ergebnis))
{
echo $row->punkte;
}


} else {

mysql_query("INSERT INTO Community_Points (name, time, wert) VALUES ('$name', '$jetzt', '$wert')") or die(mysql_error());

}

?>[/PHP]

Erklährung:

- erst werden die Werte festgelegt!

- dann wird falls vorhanden zum puktestand 3 punkte hinzuaddiert wenn das zeit feld der Tabelle kleiner ist als die Variable mit dem Wert (aktuelle Zeit - 3 Minuten)

- danach wird die obrige bedingung ein weiteres mahl ausgeführt allerdings auf den wert falls dieser gesetzt dass dieser falls zeit feld der Tabelle kleiner ist als die Variable mit dem Wert (aktuelle Zeit - 3 Minuten) gelöscht wird.

- nun wird nachgeschaut ob wert vorhanden

- wenn ja soll nur der Aktuelle Punktestand ausgegeben werden

- wenn nein soll der wert der name und die aktuelle zeit eingetragen werden.

Das script wird in einem nicht sichtbaren frame von einem meta refresch alle 3:01 Minuten aktualisiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...