Beste Leden,

Ik heb de volgende class geschreven:


class User {
    function __construct($id) {
        $id = abs((int)$id);
        
        $this->id = $id;
        
        $this->userInfo($id);
        $this->userStats($id);
    }
    
    function userInfo($id) {
        global $db_prefix;
        
        $sql = "SELECT * FROM ".$db_prefix."users WHERE id = $id";
        $result = mysql_query($sql) or exit(mysql_error());
        
        if($result) {
            $userInfo = mysql_fetch_array($result, MYSQL_ASSOC);
            
            $this->loginame = $userInfo['loginame'];
            $this->username = $userInfo['username'];
            $this->password = $userInfo['password'];
            $this->email = $userInfo['email'];
        }
    }
    
    function userStats($id) {
        global $db_prefix;
        
        $sql = "SELECT * FROM ".$db_prefix."users_stats WHERE id = $id";
        $result = mysql_query($sql) or exit(mysql_error());
        
        if($result) {
            $userStats = mysql_fetch_array($result, MYSQL_ASSOC);
            
            $this->level = $userStats['level'];
        }
    }
}


Nu vroeg ik me af of het ook mogelijk is om alle values/rijen in te laden en automatisch aan $this-> the koppelen.

Wat ik dus bedoel is om niet iedere keer als er een nieuwe column gemaakt wordt om deze ook aan de user class toe te voegen.

Wat ik dus wil bereiken, is dat als ik bijvoorbeeld een nieuwe column genaamd strenght maakt, dat deze automatisch word ingeladen in de user.class zonder $this->strength = $userStats['strength']; te doen.

Ik weet niet of dit mogelijk is, Heb rond zitten googlen maar kan er niks over vinden.

Alle hulp is welkom!
Kan je in die userStats function niet gewoon een array teruggeven dan?

In je functie bijvoorbeeld

return $userStats;


en vervolgens

$user = new User();

$userData = $user->userStats($id)

echo $userData['level];
Het is niet raadzaam om automatisch properties en methods te genereren.

Wel is het gebruikelijk om een class te maken die één user representeert met getters en setters. wanneer je dan meerdere records gaat uitlezen maak je een array aan van deze class.

Reageren