Re: Dealing with ENUM fields

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

there is a much shorter way to do this (which works with ENUM and SET):


$qry = 'SHOW COLUMNS FROM `gruzilla_content` LIKE "module"';
$res = mysql_query($qry);
if(mysql_num_rows($res)>0)
{
    $row = mysql_fetch_row($res);
    $pattern = "#(enum|set)\('(.+?)'\)#i";
    $replace = '\\2';
    $row[1] = preg_replace($pattern, $replace, $row[1]);
    $options = explode("','", $row[1]);
}

$options now contains every value of the enum. I think there is also a
possibility to do this within a query - but currently i do not find the
script on my HD.... :) - so this is a nice workaround!

.ma


Lisi <lists@shemeshdirectory.co.il> wrote@02.06.2003 11:53 Uhr:

> I am forwarding this useful function someone once sent to the list that I
> use often.
> 
> Hope this fits your needs.
> 
> -Lisi
> 
> 
>> -----Original Message-----
>> From: Russ [mailto:russ@itomic.dns2go.com]
>> Sent: Wednesday, June 26, 2002 7:47 PM
>> To: NIPP, SCOTT V (SBCSI); php-db@lists.php.net
>> Subject: RE:  Populating a dropdown list with ENUM values...
>> 
>> 
>> G'day Scott:
>> 
>> I wrote this function to do just what you're atfer:
>> You may need to mess with it for you're own needs - but go for your
>> life!
>> 
>> //----function: "enum_select()" - automatically generate an HTML select
>> menu from a MySQL ENUM field
>> //----1). takes a table name: '$table'
>> //----2). a name for the menu '$name'
>> //----3). a CSS class
>> function enum_select($table,$name,$class) {
>>         $sql = "SHOW COLUMNS FROM $table";
>>         $result = mysql_query($sql);
>>         $select = "<select name=\"$name\" class=\"$class\">\n\t";
>>         while($myrow = mysql_fetch_row($result)){
>>                   $enum_field = substr($myrow[1],0,4);
>>                   if($enum_field == "enum"){
>>                            global $enum_field;
>>                            $enums = substr($myrow[1],5,-1);
>>                            $enums = ereg_replace("'","",$enums);
>>                            $enums = explode(",",$enums);
>>                            foreach($enums as $val) {
>>                                         $select .= "<option
>> value=\"$val\">$val</option>\n\t";
>>                                         }//----end foreach
>>                                 }//----end if
>>                         }//----end while
>>                 $select .= "\r</select>";
>>                 return $select;
>> }//----end function
>> 
>> 
>> All the best.
>> Russ
>> 
>> --
>> PHP Database Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
> 

Matthias Steinböck
Email: grillen@abendstille.at
Web: http://www.abendstille.at

Frühabendliches Webdesign.
------------------------------------------
Im Übrigen sind wir der Meinung, dass
unsere Gesellschaft Gabel-diskriminierend
Löffel verwendet. Alle Macht den Gabeln!


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux