gpt4 book ai didi

php - 基于成分的多个输入搜索

转载 作者:行者123 更新时间:2023-11-29 18:39:25 25 4
gpt4 key购买 nike

我有一个包含 3 个表的数据库:食谱、成分和关系。当用户输入多种成分时,我需要返回包含这些成分的相应食谱。我编写了一段 PHP 代码,用于查找用户输入的成分的 iid。但我不明白如何进一步编写查询来查找食谱。由于有多种成分,在编码时是不确定的,我无法理解如何在我的 php 代码中使用数组。例如我有 2 个食谱 toast 和三明治我有两人共用的面包和黄油,以及三明治的蔬菜当我输入面包和黄油作为成分时,如何编写只返回 TOAST 的查询。

enter image description here

if (isset($_REQUEST['search_ingredients']))
{
$q = urldecode(mysqli_real_escape_string($con,$_REQUEST['ingredients']));
$parameter = explode (" ",$q);
$var = 0;
//print_r($parameter);

foreach($parameter as $x)
{
//echo $x;
$sql = "SELECT rname from recipes not in (select distinct rid from relations where iid not ib(SELECT iid FROM ingredients WHERE iname='".$x."'))";
$result = mysqli_query($con,$sql) or exit('{"Data":null,"Message":null,"Code":500}');
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
echo $row['iid'];
$arr_id[$var] = $row['iid'];
//echo $arr_id[$var];
$var++;
}

最佳答案

UPD:您有两种成分的 ID:1、2(面包、黄油)

主要思想是找到不符合您条件的食谱,然后选择其他食谱。

所以查询将是这样的:


从“关系”中选择不同的“rid”,其中“rid”不在(
从“关系”中选择不同的“rid”,其中“iid”不在(1,2)中
);

内部查询将返回包含除面包和黄油之外的成分的食谱,然后外部查询将选择所有其他食谱。

所以它会返回“1”,这是toast的食谱ID。

关于php - 基于成分的多个输入搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45040701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com