Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[SVN] Lister les membres par date d'inscription

Etoile
Avatar de Spark
  • Messages : 2697
  • Inscrit : 24 Juin 2006
Message édité 3 fois, dernière édition par Spark, 11 Février 2010, 21:11     Lien vers ce message 20 Décembre 2009, 23:53
  1. Type de bug : Bug sur le forum (côté PHP)
  2. Zone du forum affectée : Groupes et listes de membres
  3. Priorité du bug : Moyenne
  4. Description : Dans la liste des membres, j'ai plus de pages que je devrai en avoir, les 4 dernière pages sont vide.

    Et quand je classe dans l'ordre du 1er inscrit, au dernier, les 4 première page sont vides, c'est embêtant.
  5. Elément de réponse : Ce bug n'existait pas sur la 2.0.0
  6. Fichier(s) :
  7. Base de donnée utilisée : MySQL 4
  8. Type de serveur : Apache (généralement unix)


Left 4 Dead 2 2.0.8.7 réseau Hamachi
Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Equipe des MODS
Avatar de Grummfy
  • Age : 27 ans
  • Messages : 7007
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 11 Février 2010, 21:47
marquéé en svn #40


"La gravité est le bonheur des imbéciles" Charles de Montesquieu > "T'as raison, L'apesanteur c'est plus rigolo" Hébus de Phalompe (Troll de Troy)
Mods fsb2 - Grummfy's project - Zf Planet
 
Etoile
Avatar de Spark
  • Messages : 2697
  • Inscrit : 24 Juin 2006
  Lien vers ce message 16 Février 2010, 0:21
Je laisse ce message pour ne pas perdre mes observations.

Il y a plus de page parce que le module utilise le nombre de groupe user pour calculer le nombre de page plutôt que le nombre de membres, et comme j'ai supprimé un certan nombre de membre dans la base de donné il y a des entré orphelines dans la table fsb2_groups_users.

Toutefois, quand je classe les membres par date d'inscription décroissant les première pge sont, et en remettant un partie du code il était avant je n'au plus ce problème (les pages vides reste les dernières).

Remplacer ça :

		// On recupere les ID des membres pour optimiser la requete generale
		$sql = 'SELECT gu.u_id
				FROM ' . SQL_PREFIX . 'groups_users gu
				LEFT JOIN ' . SQL_PREFIX . 'users u
					ON gu.u_id = u.u_id
				WHERE gu.g_id = ' . $this->id
					. ((!$this->is_group_moderator) ? ' AND (gu.gu_status <> ' . GROUP_WAIT . ' OR gu.u_id = ' . Fsb::$session->id() . ')' : '')
					. $sql_search_user
			. ' ORDER BY ' . Fsb::$db->escape($this->order) . ' ' . Fsb::$db->escape($this->direction) . ', gu.gu_status DESC
			LIMIT ' . ($this->page - 1) * $this->limit . ', ' . $this->limit;
		$result = Fsb::$db->query($sql);
		$idx = array();
		while ($row = Fsb::$db->row($result))
		{
			$idx[] = $row['u_id'];
		}
		Fsb::$db->free($result);
		
		if (!$idx)
		{
			return ;
		}

		// On affiche les membres
		$sql = 'SELECT gu.gu_status, g.g_id, g.g_name, g.g_color, g.g_type, u.u_id, u.u_nickname, u.u_color, u.u_avatar, u.u_avatar_method, u.u_can_use_avatar, u.u_sexe, u.u_birthday, u.u_activate_hidden, u.u_last_visit, u.' . implode(', u.', array_keys($this->columns)) . '
				FROM ' . SQL_PREFIX . 'groups_users gu
				INNER JOIN ' . SQL_PREFIX . 'users u
					ON gu.u_id = u.u_id
				LEFT JOIN ' . SQL_PREFIX . 'groups g
					ON g.g_id = u.u_default_group_id
				WHERE gu.g_id = ' . $this->id . '
					AND gu.u_id IN (' . implode(', ', $idx) . ')
				ORDER BY ' . Fsb::$db->escape($this->order) . ' ' . Fsb::$db->escape($this->direction) . ', gu.gu_status DESC';
		$i = 1;


Par ça :

		// On affiche les membres
		$sql = 'SELECT gu.gu_status, g.g_id, g.g_name, g.g_color, g.g_type, u.u_id, u.u_nickname, u.u_color, u.u_avatar, u.u_avatar_method, u.u_can_use_avatar, u.u_sexe, u.u_birthday, u.u_activate_hidden, u.u_last_visit, u.' . implode(', u.', array_keys($this->columns)) . '
				FROM ' . SQL_PREFIX . 'groups_users gu
				INNER JOIN ' . SQL_PREFIX . 'users u
					ON gu.u_id = u.u_id
				LEFT JOIN ' . SQL_PREFIX . 'groups g
					ON g.g_id = u.u_default_group_id
				WHERE gu.g_id = ' . $this->id
					. ((!$this->is_group_moderator) ? ' AND (gu.gu_status <> ' . GROUP_WAIT . ' OR gu.u_id = ' . Fsb::$session->id() . ')' : '')
					. $sql_search_user
				. ' ORDER BY gu.gu_status, ' . Fsb::$db->escape($this->order) . ' ' . Fsb::$db->escape($this->direction) . ', gu.gu_status DESC
				LIMIT ' . ($this->page - 1) * $this->limit . ', ' . $this->limit;
		$i = 1;


Left 4 Dead 2 2.0.8.7 réseau Hamachi
Liste de réseau Hamachi pour le jeu en réseau via Internet
 
Equipe des MODS
Avatar de Grummfy
  • Age : 27 ans
  • Messages : 7007
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 15 Novembre 2010, 22:24
Sujet archivé pour la raison suivante : inreproductible, donc corrigé ?!?


"La gravité est le bonheur des imbéciles" Charles de Montesquieu > "T'as raison, L'apesanteur c'est plus rigolo" Hébus de Phalompe (Troll de Troy)
Mods fsb2 - Grummfy's project - Zf Planet
 
Répondre


.