php - 将文本中的单词映射到数据库中的字符串

标签 php mysql

我不确定这是否可以完成,但我想我会问以防万一。我有一个食谱应用程序,用 php 编写。我想转换粘贴到文本框中的成分并将其与 mysql 数据库中的一行相匹配。例如,如果我有一个名为“成分”的表,并且它包含

id       ingredient     calories
1        bread crumbs   10
2        egg            15
3        salt           1

以及包含的其他名为食谱的表

id    ingredient  

然后网站有一个文本文件来输入成分,您添加了:

1/2 cup bread crumbs
1 egg
1 tsp salt

我想从文本中取出“面包屑”,将其插入 recipes表,并将其与数据库中的面包屑相匹配,然后取鸡蛋和盐,做同样的事情。然后我可以总结食谱的卡路里。

我基本上试图找到提取成分的最简单方法,而不必将其输入到各个字段或从下拉菜单中提取。下拉菜单将有数百行并且非常困难。这显然是一个非常简单的例子,还有很多其他事情需要完成,但提取部分是我正在努力弄清楚的。有什么想法吗?

最佳答案

您可以使用这样的查询从数据库中查找成分信息。

$pdo->prepare("SELECT *
                FROM ingredients
                WHERE :input_string LIKE CONCAT('%', ingredient, '%')
                ORDER BY LENGTH(ingredient) DESC
                LIMIT 1");
$pdo->bindParam(':input_string', $_POST['ingredient']);
$pdo->execute();

ORDER BY LENGTHLIMIT 1 使其返回最长的匹配项,因此如果他们输入 bread crumbs 则不会返回 面包朗姆酒以及。

解析数量会更加困难。

关于php - 将文本中的单词映射到数据库中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38927740/

相关文章:

php - 如何通过单击 PHP 中的按钮来浏览文件并显示其内容?

php - 如何在没有页面加载图标的情况下重新加载 iFrame?

javascript - 如何使用多个url参数来显示/隐藏多个div

日期格式之间的MySQL

php - 比较 DATETIME MySQL 和 DateTime PHP

php - Laravel 5 全局日期访问器

php - eval() 代码中的意外 $end

mysql - 在 GROUP BY 中使用 LIMIT 来获得每组 N 个结果?

c++ - 如何使用 mysql c++ 连接器插入查询

php - 使用循环为 WHERE 子句创建查询