Re: [PHP] Enum table entry

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

 



You know, I didn't even think about serializing the array.  I have a 
table set up for spells, one for schools, and a linking table using the 
spell id and the school id(s).  I could have done without the linking 
table.  Some of you people are pretty freakin' smart. :)

One note though, when you pull the serialized data out, you may have to 
stripslashes before unserialize...

$school = unserialize ( stripslashes ( $row['school'] ) );

Tom Rogers wrote:
> Hi,
> 
> Saturday, October 19, 2002, 2:48:14 PM, you wrote:
> SM> 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
> SM> 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
> SM> 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
> SM> 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
> SM> 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
> SM> 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
> SM> 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
> SM> show abjuration, divination? Thanks for the help in advance. 
> 
>  I have never used enum type but I am sure it is not what you want as
>  it will only store one item from a predefined list not a list of
>  items. What you need to do is create an array of the selected items,
>  serialize() it to store in the database in a varchar or mediumtext if
>  it going to get big. Then when you read it back unserialize and loop
>  through all the options setting "checked" if it is in the array.
>  To keep the checkboxes grouped name them like this:
>  <input type="checkbox" name="school[1]">
>  <input type="checkbox" name="school[2]">
>  <input type="checkbox" name="school[3]">
> 
>  That will show up as an array under $_POST['school']
>  so you can serialize it as is and store it.
> 
>  <?
>  if(isset($_POST['school'])) $school = serialize($_POST['school']);
>  ?>
> 
>  Playback is simple too
> 
>   <?
>   $school = unserialize($row['school']);
>   for($i = 1;$i < 41;$i++){
>          echo '<input type="checkbox" name="school['.$i.']"';
>          if(isset($school[$i])) echo ' checked';
>          echo '>';
>   }
> 
>   Un-checked boxes are not returned in the post and checked ones
>   return Yes I think.
> 
> 
> 



-- 
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