Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...