Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

zeitliches MYSQL Update (Punktesystem)

Empfohlene Antworten

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

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.