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

时间:2016-08-12 23:30:46

标签: php mysql

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

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表中,然后将其与数据库中的面包屑相匹配,然后取出鸡蛋和盐并做同样的事情。然后我可以总结食谱的卡路里。

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

1 个答案:

答案 0 :(得分:2)

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

$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,它也不会返回breadrum。< / p>

解析数量会更难。