fonctions pour Les ENUM PHP/MYSQL

Pour ceux qui n’avaient pas remarqué (cf ici) , J’adore le type ENUM.

Alors voila trois fonctions toutes connes.

majEnum : Vas mettre jour le champ ENUM dans MySql.
funcEnumList : Vous donne un tableau qui liste les ENUM d’un champ Mysql.
funcMakeFormList : vous génere le select pour les formulaires HTML.

Mise à jour d’un champ de type ENUM à Partir d’un Tableaux
– $strTable : Table contenant l’enum à mettre à jour
– $strEnumField : Nom du champ de type ENUM a mettre à jour
– $arrEnum : Tableaux des ENUM
– $strDefault : L’ENUM par default (Optionel)

function majEnum($strTable, $strEnumField, $arrEnum, $strDefault = 'DEFAULT') {
if ( !in_array($strDefault,$arrEnum) ) {
$strDefault = $arrEnum[0];
}
foreach ( $arrEnum as $strEnum) {
if (!$strToEnum) {
$strToEnum = '\'' . $strEnum . '\'';
} else {
$strToEnum.= ', \'' . $strEnum . '\'';
}
}
$reqUpdate = 'ALTER TABLE `' . $strTable . '` ';
$reqUpdate.= 'CHANGE `' . $strEnumField . '` `' . $strEnumField . '` ';
$reqUpdate.= 'ENUM( ' . $strToEnum . ' ) NOT NULL DEFAULT \'' . $strDefault . '\';';
mysql_query($reqUpdate);
}

Fontion qui cr ée un tableaux des enums
– $strTable : Requette
– $strField : table comtenant le champ enum (table.field)

function funcEnumList( $strTable, $strEnumField ) {
$reqListEnum = 'SHOW COLUMNS FROM `' . $strTable . '` LIKE \'' . $strEnumField . '\' ';
$recListEnum = mysql_query($reqListEnum);
$arrRow = mysql_fetch_assoc($recListEnum);
//memoire libere toi
mysql_free_result($recListEnum);
$arrEnum = explode(
'\',\'',
preg_replace(
'/.*\(\'(.*)\'\)/',
'\\1',
$arrRow['Type']
)
);
return $arrEnum;
}

Fontion qui cr ée la liste dans un formulaire a partir d’un tableau
– $strName : Nom de la liste
– $arrValue : contenu de la liste
– $strId : id de la liste
– $strOpt : option html de la liste
– $strSelected : option selectionn é par defaut

function funcMakeFormList( $strName, $arrValue, $strSelected = '', $strId = '', $strOpt = '' ) {
if ( $strId == '' ) {
$strId = $strName;
}
if ( $strOpt == '' ) {
$strOpt = ' '.$strOpt;
}
$strHtml = '';
return $strHtml;
}

Laisser un commentaire

Bad Behavior has blocked 0 access attempts in the last 7 days.