Miriam hat geschrieben:Zum Speichern der Werte kannst Du sicherlich das Objekt $user heranziehen / benutzen.
Meiner Meinung nach ist das aber wenig hilfreich, denn das Objekt enthält nur Daten des angemeldeten Users und nicht des Users allgemein (also nicht des Posters / Members etc. pp.).
Für eine "globale" Lösung könnte es ein guter Ansatz sein, eine entsprechende Funktion in der /includes/functions.php zu definieren, die die Daten in Abhängigkeit von der (abgefragten) User-ID bereitstellt.
Was dann aber hieße, dass ich bei jeder Variablenabfrage (die ich dann über die Funktion abwickle) trotzdem eine Datenbankabfrage habe, oder?
Genau das wollte ich ja versuchen zu minimieren.
Ich habe Angst, dass zu viele Datenbankabfragen generell zu viel Zeit kosten...
Generell brauche ich in den meisten Fällen auch wirklich nur die Daten des angemeldeten Users selber, sodass ich dann wohl aus der Tabelle alle Werte mit user_id = $user->data['user_id'] auslesen werde, und genau diese wollte ich als Array im Userobjekt speichern.
Oder ist das generell nicht so sinnvoll?
########
ach mensch, ich erzähle einfach mal meinen Plan, vielleicht wird das dann klarer und ich kriege ein paar Ideen.
Ich bastel im Moment ein Achievement-System und es läuft bisher ziemlich gut, denke ich.
Wenn ein User einen Erfolg bekommt, dann wird seine userID mit der entsprechenden achievementID in der Datenbank gespeichert, in einer extra Tabelle.
Die Überprüfung, ob ein User so einen Erfolg errungen hat, findet an diversen Stellen statt, je nach Erfolg. Zum Besipiel in der posting.php für die Anzahl der Beiträge, etc.
Damit aber nicht jedes mal geguckt wird, ob ein User das Achievement schon hat oder noch schlimmer, ob er es jetzt bekommen würde, wollte ich eben überprüfen, ob das nicht schon erreicht ist und dann den Code einfach überspringen.
Gerade bei etwa 100 geplanten Erfolgen, wo teilweise 20 in einer Datei nacheinander abgearbeitet werden, ist es doch wichtig zu gucken, dass schon erreichte einfach nciht ausgeführt werden, oder?