Re: Enum table entry
| From: | Lowell Allen | Date: | Sat, 19 Oct 2002 14:17:42 +0000 |
| Subject: | Re: Enum table entry | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-120599@lists.php.net to get a copy of this message | ||
> From: "Shiloh Madsen" <shiloh_madsen@nsc-support.com>
>
> Have a question that im trying to figure out how to resolve. I have a field
> type in mysql that is of the enum type. Unless youre familiar with Dungeons
> and Dragons, you wont get what the values mean, but hopefully youll get the
> gist anyway. I have a column labelled school which holds an enum data type
> comprised of the values 1 through 40. From the website front end, where the
> data is being entered, i want to display, ideally a series of checkboxes,
> otherwise a list which would allow a user to select multiple items in that
> will translate into this enum field. For instance, a series of checkboxes with
> items such as abjuration, conjuration, divination, and others, which will all
> have a numeric value which gets plugged into the enum field. for instance, if
> a user selected abjuration, and divination, it would be plugged into sql as 1,
> 3 (or however enum data is input into its column). That being the case how do
> i utilize php to get this to work? what kind of form elements etc... The
> problem im seeing with checkboxes are that they are discreet and dont group
> together, so i cant get all the data to go into one column in mysql. Hopefully
> i havent horribly confused the issue and some kind soul out there can tell me
> how to send this data across. As a double nice thing...how would you write it
> to pull the data back out...ie, convert 1, 3 to show abjuration, divination?
You're using the wrong column type in MySQL. Use SET instead of ENUM. SET
allows multiple selection from a list that you specify; ENUM allows a single
value chosen from a list. Also, using SET is better (faster) than using CHAR
or VARCHAR because MySQL can handle it as numeric data.
--
Lowell Allen