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 - B)

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 : 10 Déc 2005 19:41
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 $can_no_select si cet argument est à TRUE, la première entrée du menu déroulant permettra de ne selectionner aucun champ.
 */
function get_table_fields($table, $name, $selected = '', $can_no_select = FALSE)
{
   global $lang, $board_config, $phpbb_root_path, $phpEx, $db;
   
   // Requête SQL de récupération des champs.
   $GTFi_sql = 'SHOW fields FROM ' . $table;
   if(!$GTFi_result = $db->sql_query($GTFi_sql))
   {
      message_die(GENERAL_ERROR, "Couldn't obtain fields list", "", __LINE__, __FILE__, $GTFi_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
   {
      $ChSu_functions_file = $phpbb_root_path . 'includes/functions_champs_suppl.' . $phpEx;
      if(file_exists($ChSu_functions_file))
      {
         include_once($ChSu_functions_file);
         $champs_suppl_installed = TRUE;
      }
      else
      {
         $champs_suppl_installed = FALSE;
      }
   }
   
   // Ouverture du menu.
   $menu = '<select name="' . $name . '">';
   
   // Si l'on a le droit de ne pas selectionner de champ...
   if($can_no_select)
   {
      $menu .= '<option value="" style="font-weight: bold;">' . $lang['GTFi_aucun'] . '</option>';
   }
   
   // Parcours des champs.
   while($row = $db->sql_fetchrow($GTFi_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) && ($champ_rows[$champ_ref[$field_id[1]]]['champ_nom'] != ''))
      {
         $menu .= '<option value="' . $field . '"' . $is_select .' style="font-style: italic;">' . $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


Dans "language/lang_french/lang_main.php" :
Code :
#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Get table fields
$lang['GTFi_aucun'] = 'Aucun';
// 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