You can do as you suggested this way:
$sql = 'INSERT INTO `table` ( `furnitured` ) '
. 'VALUES ( "' . implode( ',', $_REQUEST["common_amenities"] ) . '" );';
The best way is to create a relational database with many tables, one for the appartment, anotherone with the different attributes and a third connecting appartment with attributes.
TABLE apartment
id INT,
name VARCHAR
TABLE category
id INT,
name VARCHAR
TABLE attribute
id INT,
category_id INT,
name VARCHAR
TABLE app_attr
id INT,
app_id INT,
attr_id INT,
And add data:
INSERT INTO `category` ( `id`, `name` ) VALUES ( 1, 'furnitured' );
INSERT INTO `category` ( `id`, `name` ) VALUES ( 2, 'common_amenities' );
INSERT INTO `category` ( `id`, `name` ) VALUES ( 3, 'outdoor' );
INSERT INTO `attribute` ( `id`, `category_id`, `name` ) VALUES ( 1, 3, 'Balcony' );
INSERT INTO `attribute` ( `id`, `category_id`, `name` ) VALUES ( 2, 3, 'Pool' );
INSERT INTO `attribute` ( `id`, `category_id`, `name` ) VALUES ( 3, 3, 'Sea view' );
INSERT INTO `attribute` ( `id`, `category_id`, `name` ) VALUES ( 4, 2, 'Internet' );
INSERT INTO `apartment` ( `id`, `name` ) VALUES ( 1, 'Seaview villa' );
INSERT INTO `app_attr` ( `id`, `app_id`, `attr_id` ) VALUES ( 1, 1, 2 ); -- Has Pool
INSERT INTO `app_attr` ( `id`, `app_id`, `attr_id` ) VALUES ( 1, 1, 3 ); -- Has Sea view
Now you add an apartment to the apartment table. Every attribute is added to the relational database app_attr. Now you can easily filter out all apartments having Internet.
The attributes are categorized by the category_id, if this is what you wish.
It is rather hard to search 'internet,pool' for Has the apartment a pool?