我不确定这可以做到,但我想我会问以防万一。我有一个用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
表中,然后将其与数据库中的面包屑相匹配,然后取出鸡蛋和盐并做同样的事情。然后我可以总结食谱的卡路里。
我基本上试图找到最简单的方法来提取成分,而无需将其输入单个字段或从下拉菜单中提取。下拉菜单将有数百行并且很难。这显然是一个非常简单的例子,还有很多其他的事情需要做,但提取部分是我正在努力弄清楚的。有什么想法吗?
答案 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 LENGTH
和LIMIT 1
会返回最长的匹配,因此如果他们输入bread crumbs
,它也不会返回bread
或rum
。< / p>
解析数量会更难。