【问题标题】:How to use a PHP checkbox form to SELECT from MySQL datatype SET (multiple choice) column values?如何使用 PHP 复选框表单从 MySQL 数据类型 SET(多项选择)列值中进行选择?
【发布时间】:2011-11-05 19:03:53
【问题描述】:

我有一个 MySQL 数据库,其中有一列数据类型为 SET(多选,比如苹果、橙子、葡萄)

我想要一个带有这些值(苹果、橙子、葡萄等)复选框的表单,以便可以选择包含例如橙子和葡萄的早餐篮类型。

它会从数据库中提取那些带有水果选择的篮子(在“水果”列中指定,这是一个 EM 数据类型列。(在输入列的值时,我有多项选择。)

可以吗?我应该用 FruitNames 制作另一张桌子吗?

另外,当我向多选列表添加一个新值时,我之前的所有条目都会消失,我必须再次重新输入所有值... 请帮忙!

  • 如何搜索与多选匹配的条目(从 SET 类型列)?
  • 我可以在不删除之前的条目的情况下编辑 SET 类型列中的值列表吗?

提前致谢。

【问题讨论】:

    标签: php mysql dataset sqldatatypes


    【解决方案1】:

    是的,您将需要另一张桌子。那就是database normalization

    你能告诉我向列表添加值的查询吗?

    我会给你PHP代码如何实现选择水果。

    $fruits = implode(',', $_POST['fruits']);
    mysql_query('SELECT name, fruit_id FROM fruits WHERE fruit_id IN ('.$fruits.')');
    

    这是表格

    <input type="checkbox" name="fruits[1]"> Apple<br>
    <input type="checkbox" name="fruits[2]"> Pear<br>
    

    【讨论】:

    • 它唯一的演示,来吧。而且很容易解决这个问题:foreach($_POST['fruits'] as $key=&gt;$fruit) { $_POST['fruits'][$key] = intval($fruit); }
    • @Ernestas 非常感谢 Ernestas,我试图保留 SET 列中的数据。在网上找到了一些信息(freeopenbook.com/mysqlcookbook/mysqlckbk-CHP-18-SECT-4.html)。这确实是基本和简单的,我只是在学习......而且在线社区很棒。再次感谢。
    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 2018-12-25
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多