Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[Sous-MOD] Get table fields (DEV - A)

Ce forum est verrouillé, vous ne pouvez pas poster, ni répondre, ni éditer les sujets. Ce sujet est verrouillé, vous ne pouvez pas éditer les messages ou faire de réponses.

Rechercher dans ce sujet :
Messages
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 06 Sep 2005 18:07
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
But : Ajoute une fonction permettant de générer un menu déroulant de selection d'une colonne d'une table de la base de données.

Dans "includes/functions.php" :
Code :
#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Get table fields
/**
 * Renvoie un menu déroulant contenant la liste des champs de la table demandée.
 *
 * @param $table table dont on  veut récupérer les champs.
 * @param $name nom à donner à la variable représentée par le menu déroulant.
 * @param $selected champ à selectionné par défaut.
 * @param $hide_suppl masquer ou non les champs supplémentaires. N'est pris en compte que si le mod "Champs supplémentaires" est installé et n'a de sens que dans le cas de la table des membres. Vaut FALSE par défaut.
 */
function get_table_fields($table, $name, $selected = '', $hide_suppl = FALSE)
{
   global $lang, $board_config, $phpbb_root_path, $phpEx, $db;
   
   // Requête SQL de récupération des champs.
   $sql = 'SHOW fields FROM ' . $table;
   if(!$result = $db->sql_query($sql))
   {
      message_die(GENERAL_ERROR, "Couldn't obtain fields list", "", __LINE__, __FILE__, $sql);
   }
   
   // Gestion du MOD champs supplémentaires s'il est installé.
   global $champ_rows, $champ_ref;
   if(is_array($champ_rows) && is_array($champ_ref))
   {
      $champs_suppl_installed = TRUE;
   }
   else
   {
      $champs_suppl_installed = FALSE;
   }
   
   // Ouverture du menu.
   $menu = '<select name="' . $name . '">';
   
   while($row = $db->sql_fetchrow($result))
   {
      $field = $row['Field'];
      
      // On vérifie s'il s'agit du champ à selectionner.
      if($selected == $field) { $is_select = ' selected="selected"'; }
      else { $is_select = ''; }
      
      // Vérification s'il s'agit d'un champ supplémentaire.
      if($champs_suppl_installed && preg_match('#^champ_supl_(.*)$#', $field, $field_id))
      {
         if(!$hide_suppl)
         {
            $menu .= '<option value="' . $field . '"' . $is_select .'>' . $champ_rows[$champ_ref[$field_id[1]]]['champ_nom'] . '</option>';
         }
      }
      else
      {   
         $menu .= '<option value="' . $field . '"' . $is_select .'>' . $field . '</option>';         
      }      
   }
   
   // Fermeture du menu.
   $menu .= '</select>';   
   
   return $menu;
}
// FIN MOD Get table fields

Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
  Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum