<?php

// ------------------------------------------------------------------------- //
// listes d'éléments -> menus déroulants                                     //
// ------------------------------------------------------------------------- //
// Auteur: Jérémy <jeremy.listes@free.fr>                                    //
// Web:                                                                      //
// ------------------------------------------------------------------------- //

/*
Cette fonction permet de générer le code HTML qui correspond à un menu déroulant
ou une liste à choix multiples pour les colonnes SET ou ENUM de MySQL.

Les paramètres $nom_table, et $col_table sont explicites.
Le paramètre $multiple permet de spécifier si plusieurs choix sont possibles dans
la liste et le paramètre $max dit combien d'options sont à afficher au maximum.

Si on a une liste déroulante, on ajoutte une option au début pour indiquer qu'il
faut sélectioner un élément.
*/

function setenum_to_select($table_name,$col_name,$multiple="1",$max='5') {
    
$sql = "SHOW COLUMNS FROM $table_name LIKE '$col_name'";
    
connect_mysql();
    
$res = mysql_query($sql);
    
$row = mysql_fetch_object($res);
    
$set_list = ereg_replace("set\(|enum\(|\)","",$row->Type);
    
$set_list = explode(",",$set_list);
    
$size = count($set_list);
    if (
$size > 1 ) {
            if (
$size > $max ) $size = $max;
            if (
$multiple == "1" ) $multiple .= " multiple=multiple";
            else
$multiple = "";
    } else {
            
$multiple = "";
            
$size = 1;
    }
    
$strRes =  "\n<select size='".$size."' name='".$col_name."'".$multiple.">";
    if (
$size == 1 ) $strRes .=  "\n<option value='0'>Sélectionner</option>";
    foreach (
$set_list as $val ) {
    
$val = str_replace("'","",$val);
            
$strRes .=  "\n<option value='".$val."'>".$val."</option>";
    }
    
$strRes .=  "\n</select>";
    return
$strRes;
}

?>