0

我正在处理动态页面。情节是这样的。

  • 第 1 页包含一个供我选择的下拉菜单。
  • 选定的菜单值将传递到下一页 URL。
  • 然后页面会检索到这个值来比较和过滤MYSQL Table字段名称。
  • 该表由 4 个主要类别组成,这是用户在第 1 页中选择的选项。
  • 每个类别将存储 30 个单词。
  • 当用户搜索某个词时,它应该通过显示下拉菜单并检查该值是否与表的字段 id 的值相同来询问选项,并且该词现在用于缩小范围在此字段中搜索,而不是所有 4 个类别。

这个怎么做?我为此工作了几个星期,但我无法解决它。

$ret1 = "SELECT * FROM $db_tb_name WHERE MATCH
 ('categoryid'='.$selectvalueid.') AND AGAINST ('%$str%' IN BOOLEAN MODE)";

我有这段代码,它的语法错误。

请有人帮我举个例子。

4

1 回答 1

0

所以让我直截了当地说:在您发出请求时,您既有类别 id $selectvalueid(由下拉菜单产生)和一个搜索词$str(由自由文本条目产生?)。categoryid并且您希望表的列与脚本中的字符串完全匹配的那些行$selectvalueid,而其他一些列(具有什么名称?)包含$str值。到目前为止是正确的吗?

如果是,您的查询可能如下所示:

SELECT * FROM $db_tb_name
WHERE categoryid = '$selectvalueid'
  AND wordcolumn LIKE '%$str%'

请注意,简单地将用户输入变量粘贴到 SQL 查询中很可能会使您的站点容易受到 SQL 注入攻击。因此,更好的方法是使用带有占位符的查询,并在执行查询时使用准备好的语句以安全的方式填充这些占位符。如何做到这一点取决于应用程序语言。

于 2012-11-01T14:38:37.647 回答