【问题标题】:Check database table with multible inputs检查具有多个输入的数据库表
【发布时间】:2016-10-03 07:27:31
【问题描述】:

我创建了一个论坛,您可以在其中向音乐家提问。我有一个表格,您可以在其中选择多个复选框来选择您想与什么样的音乐家交谈。

使用POST 数据,我做了以下事情:

$result = implode(",",$_POST['sub']);

并将其插入到如下所示的数据库表中:

-------------------------------------------
| id  | topicname | genre |    Subgenre   |
-------------------------------------------
|  1  |   music   | Metal | Heavy, Thrash |
-------------------------------------------

所以我想要的是只有在网站上注册了重型或 Thrash 的音乐家才能与此论坛主题互动。如果表中只有一个变量,我知道如何正常检查,但现在有两个,我不知道如何解决这个问题。

【问题讨论】:

  • 使用OR 运算符。 SELECT * FROM Table WHERE col1 = 'value' OR col2 = 'value2'
  • 但我不认为我可以使用它,因为另一个主题在提交到数据库时可能会检查 3 或 4 个不同的子类型。
  • 考虑您的表结构。可能值得考虑如何将信息存储在数据库中,以便数据复制和分配变得更简单。

标签: php mysql database checkbox


【解决方案1】:

你为什么不在mysql中使用'like'函数。它使用在表列中找到的字符串检索记录匹配。就像下面的代码

SELECT * FROM table_name WHERE `genre` LIKE '%metal%' OR `Subgenre` LIKE '%metal%'

希望它能解决您的问题...祝您好运..

【讨论】:

  • 如何使用LIKE 解决任何问题?表中的值是准确的,这不是搜索类型请求(或者更确切地说,不应该是)。
  • SELECT * FROM TableName WHERE Column_name IN (column1, column2, column3, column4)
  • 如果您在单行中合并多个记录并使用逗号内爆,那么 IN 函数如何找到完美匹配来提供数据。例如,如果我有一个像“Heavy, Thrash”这样的数据,而另一个记录有(“Thrash,Heavy”)来自这种情况,IN 函数不会检索记录,所以我使用 LIKE 函数来匹配记录。因为我的一个应用程序也面临同样的问题,并且使用 LIKE 方法可以正常购买。希望你能理解我的情况……
  • 就像实际工作一样!我可以将它用于 mysql_row 以查看是否有 1 提醒 og 变量!非常感谢!周末愉快
猜你喜欢
  • 1970-01-01
  • 2016-07-09
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-18
相关资源
最近更新 更多