For Programmers: Free Programming Magazines  


Home > Archive > PHP DB > April 2005 > retrieve enum values









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author retrieve enum values
Mel List_php

2005-04-14, 3:55 pm

Hi!

I have a column type enum in mysql.
At the moment the possible values are 1,2 and 3.

I make a form for my user to modify that value, something like:
<select>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
</select>

I may need to add a value 4 to the enum, and in that case I would like to
avoid modifying the code.

I would like to know it it is possible to have something like:
select possible_enum_values from table ...
and then having a loop through these values.
I can't select distinct values in that column because one value may not
exist yet and I don't want to have fake records.

I found that in the mysql doc and was wondering if there is an already
implemented php function intsead of having to parse:
" If you want to determine all possible values for an ENUM column, use SHOW
COLUMNS FROM tbl_name LIKE enum_col and parse the ENUM definition in the
second column of the output."

Any idea?

Melanie

________________________________________
_________________________
It's fast, it's easy and it's free. Get MSN Messenger today!
http://www.msn.co.uk/messenger
Nadim Attari

2005-04-15, 3:56 am

$descRS = mysql('describe theTableName theEnumColumn');
list($fld_name, $fld_type, $fld_null, $fld_key, $fld_default, fld_extra) =
mysql_fetch_row($descRS);
mysql_free_result($descRS);

// Values you will be interested: $fld_type (and $fld_default perhaps)
// $fld_type will be equal to = enum('1', '2', '3')

$enumValuesArr = split(',', str_replace("'", "", substr($fld_type, 5, -1)));

echo '<select>';

foreach ($enumValuesArr as $enumValue) echo "<option
value='$enumValue'>$enumValue</option>"

echo '</select>';

-----------------------------------------

Hope it gonna help!

Regards,
Nadim Attari,
Alienworkers.com
-----------------------------------------

> Hi!
>
> I have a column type enum in mysql.
> At the moment the possible values are 1,2 and 3.
>
> I make a form for my user to modify that value, something like:
> <select>
> <option value='1'>1</option>
> <option value='2'>2</option>
> <option value='3'>3</option>
> </select>
>
> I may need to add a value 4 to the enum, and in that case I would like to
> avoid modifying the code.
>
> I would like to know it it is possible to have something like:
> select possible_enum_values from table ...
> and then having a loop through these values.
> I can't select distinct values in that column because one value may not
> exist yet and I don't want to have fake records.
>
> I found that in the mysql doc and was wondering if there is an already
> implemented php function intsead of having to parse:
> " If you want to determine all possible values for an ENUM column, use

SHOW
> COLUMNS FROM tbl_name LIKE enum_col and parse the ENUM definition in the
> second column of the output."
>
> Any idea?
>
> Melanie

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com