Bonjour à tous,

Je suis en train de développer un site web, avec gestion d'utilisateurs, de news, de messagerie privée, ...

Pour la gestion des données, j'ai prévu au premier appel d'une fonction permettant de retourner des infos d'un utilisateur, d'effectuer une seule grosse requête SELECT *, de trier les résultats dans un array, et à chaque demande d'infos future, cet array est parcouru.

Les deux fonctions de ma classe gérant les utilisateurs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
public function getUser($id = 0, $field = '')
{
	$this->buildUsers();
		if ($id == 0)
		{ 
			if ($_SESSION['USERID'] == 0 OR empty($_SESSION['USERID'])) { return; }
			if (empty($field)) { return $this->userData[$_SESSION['USERID']]; }
			else { return $this->userData[$_SESSION['USERID']][$field]; }
		} 
		else 
		{
			if (empty($field)) { return $this->userData[$id]; }
			else { return $this->userData[$id][$field]; }
		}
}
Utilisation: $op->getUser($id_utilisateur, $champ)

..et la deuxième qui construit les informations utilisateurs

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
private function buildUsers()
{
	if (empty($this->userData)) {
		global $db;
		$query = 'SELECT * FROM op_users';
		$re = $db->query($query);
		$max = count($re);
		for($i=0;$i < $max;$i++)
		{ 
			foreach ($re[$i] as $key => $value)
			{
				$this->userData[$re[$i]->userid][$key] = $value;
			}
		}
	}
}


Ma question est simple, est-ce assez convenable ainsi, ou dois-je effectuer une requête par demande (avec critères..etc)?