首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL中保存这些会话数组?

问如何在MySQL中保存这些会话数组?
EN

Stack Overflow用户
提问于 2015-11-13 04:18:30
回答 1查看 26关注 0票数 0

我有一个表单,其中的一些下拉列表可以多选。其他的只是简单的下拉列表。

我的问题是,如何在MySQL中保存数组的多个值?

以下为示例:

furnitured值将保存在MySQL列furnitured中

但是如何将common_amenitites作为Heating,Internet保存到MySQL列common_amenities中呢?

代码语言:javascript
复制
["furnitured"]=>
  string(3) "yes"
["common_amenities"]=>
  array(2) {
    [0]=>
    string(7) "Heating"
    [1]=>
    string(8) "Internet"
  }
["outdoor"]=>
  array(1) {
    [0]=>
    string(7) "Balcony"
  }
EN

回答 1

Stack Overflow用户

发布于 2015-11-13 04:25:56

你可以按照你的建议这样做:

代码语言:javascript
复制
$sql = 'INSERT INTO `table` ( `furnitured` ) '
    .  'VALUES ( "' . implode( ',', $_REQUEST["common_amenities"] ) . '" );';

最好的方法是创建一个包含多个表的关系数据库,一个用于公寓,另一个具有不同的属性,第三个连接带有属性的公寓。

代码语言:javascript
复制
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,

并添加数据:

代码语言:javascript
复制
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

现在,将公寓添加到公寓表中。每个属性都被添加到关系数据库app_attr中。现在你可以很容易地过滤掉所有有互联网的公寓。

属性按category_id进行分类,如果您希望这样做的话。

很难搜索“网络,游泳池”来查找公寓里有游泳池吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33680537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档