Jetzt kostenlos Anmelden!


Raffy

lernt alles kennen

1

Samstag, 18. Dezember 2010, 15:57

User mit Punkten belohnen bei speicherung

Hallo <3
Ich denke, bzw hoffe, dass mir hier wie immer super geholfen wird.
Diesmal möchte ich gerne wissen, wie man es umsetzen kann, dass User mit Punkten belohnt werden, sobald sie zum Beispiel etwas speichen (Formular absenden) oder sonstiges.

Ich hab nur den Quellcode gefunden, weiss aber nicht, wie ich es umsetzen muss:

PHP-Quelltext

1
2
3
$userinfo=$DB->fetch_array($DB->query("SELECT * FROM ".$db_tab['user']." WHERE user_id='".$USER['id']."'"));
if ($userinfo['psp_aktiv']==1) {
$DB->query("UPDATE ".$db_tab['user']." SET psp_punkte=psp_punkte+".$psp_info['psp_gbeintrag']." WHERE user_id ='".$USER['id']."'");


Sollte jetzt nicht fürs GB sein, sondern einfach die Punktezahl manuell in einem Formailer einbauen <3
Gruss Raffy
  • Zum Seitenanfang
  • Zum Seitenende

Knuddi Männlich

kennen Einige hier

Beiträge: 344

Geschlecht: Männlich

PHPKIT Version: 1.6.1

2

Samstag, 18. Dezember 2010, 16:18

Hallo Raffy, da ich gerne mit dem Punktesystem arbeite kann ich dir das gut empfehlen und zwar dorthin beim formmailer hinzusetzen wo die Insert Into zeile mit ist also darunter ;)

Also mach die Abfrage so:

PHP-Quelltext

1
2
3
4
5
$punkteverteilen '5';
$userinfo=$DB->fetch_array($DB->query("SELECT * FROM ".$db_tab['user']." WHERE user_id='".$USER['id']."'"));
if ($userinfo['psp_aktiv']==1) {
$DB->query("UPDATE ".$db_tab['user']." SET psp_punkte=psp_punkte+".$punkteverteilen." WHERE user_id ='".$USER['id']."'");
}


die Variable $punkteverteilen ist der Wert der verteilt wird.
  • Zum Seitenanfang
  • Zum Seitenende

Raffy

lernt alles kennen

3

Samstag, 18. Dezember 2010, 17:26

=)

Das klappt, nur wie kann man eine Sperre einfügen, dass der USer am Tag maximal nur 6 Beiträge schreiben kann?
  • Zum Seitenanfang
  • Zum Seitenende

Knuddi Männlich

kennen Einige hier

Beiträge: 344

Geschlecht: Männlich

PHPKIT Version: 1.6.1

4

Samstag, 18. Dezember 2010, 18:06

Dazu muss man erstmal einen configurationsbereich haben wo man erstmal die anzahl angibt und das dann das limit gezählt wird. und nächsten tag dann wieder auf 0 gesetzt wird. Dazu müsste man noch mit Zeit arbeiten. habe grad den code nicht zur Hand, sonst könnte ich ihn dir auf die schnelle vorbereiten. habe sowas nämlich auch schon realisiert bei meinem sammelkarten-addon auf http://animalcrossing-town.de dort kann man sich sammelkarten kaufen also das wären 3x3 packs an sammelkarten pro tag. und 0uhr wird das dann zurückgesetzt.
  • Zum Seitenanfang
  • Zum Seitenende

reddevil82 Männlich

BFM Stream Cheffe

Beiträge: 1 712

Geschlecht: Männlich

PHPKIT Version: 1.6.5

5

Samstag, 18. Dezember 2010, 19:05

Du erstellt in der Tabelle user eine neue tabelle zb. userlimit

Dann lässt du diese bei jeden post hochzählen also userlimit+1

dann eine abfrage if(userlimit < 6) gib punkte else gib keine punkte mehr.

und dann legst du nen cronjob an der dir immer zb um 0:01 die tabelle userlimit wieder auf 0 setzt.

Das war jetzt mal so auf die schnelle wie man es umsetzen kann.
Seit 02.07.2010 Papa einer süssen Tocher !!!!

http://www.burnerfm.de

Mit den besten Hits der 80´s, 90´s und von heute. Plus einigen PHPKit Addons... uvm.
  • Zum Seitenanfang
  • Zum Seitenende

Raffy

lernt alles kennen

6

Samstag, 18. Dezember 2010, 20:16

=)

Danke Danke =)
Die Idee ist toll, werd mal versuchen umzusetzen <3
Gruss Raffy
  • Zum Seitenanfang
  • Zum Seitenende

Raffy

lernt alles kennen

7

Samstag, 18. Dezember 2010, 20:57

=)

So das klappt ganz gut,nur ne Frage hab ich zu dem Quellcode, der die Punkte bei allen Usern wieder auf 0 setzt.
Wie sollte der PHP Code aussehen?
Gruss Raffy
  • Zum Seitenanfang
  • Zum Seitenende

Knuddi Männlich

kennen Einige hier

Beiträge: 344

Geschlecht: Männlich

PHPKIT Version: 1.6.1

8

Samstag, 18. Dezember 2010, 21:47

Ich hab das bei mir so lösen können:

PHP-Quelltext

1
2
3
4
5
6
7
    $thistime time();
  $thismonth date("m" $thistime);
  $nextday date("d" $thistime)+1;
  $hour 0;
  $minute 0;
  $second 0;
  $nextdate mktime ($hour$minute$second$thismonth$nextday);

ersteres wird bei mir mit $nextdate in die DB gespeichert.
und meine phpdatei die beim laden der seite das abfragt:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
    $thistime time();

$pay $DB->fetch_array($DB->query("SELECT cardsnormalpayday, cardsspecialpayday FROM ".$db_tab['user']." WHERE user_id='".$USER['id']."'"));

  $cardsnormalpayday $pay['cardsnormalpayday'];  #Zeit für Normale Karten
  $cardsspecialpayday $pay['cardsspecialpayday'];#Zeit für Specialkarten

   if ($cardsnormalpayday <= $thistime) {
     $DB->query("UPDATE ".$db_tab['user']." SET daycardsnormalpay='0' WHERE user_id='".$USER['id']."'");
}
 if ($cardsspecialpayday <= $thistime) {
     $DB->query("UPDATE ".$db_tab['user']." SET daycardsspecialpay='0' WHERE user_id='".$USER['id']."'");
}

dieses setzt dann das limit wieder auf 0 und es funktioniert bei mir einwandfrei ohne Probleme.
  • Zum Seitenanfang
  • Zum Seitenende

reddevil82 Männlich

BFM Stream Cheffe

Beiträge: 1 712

Geschlecht: Männlich

PHPKIT Version: 1.6.5

9

Samstag, 18. Dezember 2010, 23:35

PHP-Quelltext

1
$DB->query("UPDATE ".$db_tab['user']." SET userlimit='0'");
Seit 02.07.2010 Papa einer süssen Tocher !!!!

http://www.burnerfm.de

Mit den besten Hits der 80´s, 90´s und von heute. Plus einigen PHPKit Addons... uvm.
  • Zum Seitenanfang
  • Zum Seitenende

Raffy

lernt alles kennen

10

Sonntag, 19. Dezember 2010, 01:45

^^

Welche Variante soll ich denn nun nehmen :P
Bzw. welche ist besser und sicherer?
Gruss Raffy
  • Zum Seitenanfang
  • Zum Seitenende