0

如何回显多个结果。目前这显示配方名称,但我也希望能够回显数据库中的步骤。所以数据库中的字段将是第 1 步。

 <?php
    if (isset($_POST['search'])) {
        $ingredient1 = $_POST['dropdown1'];
        $ingredient2 = $_POST['dropdown2'];
        $ingredient3 = $_POST['dropdown3'];

        $recipes = mysql_query("
            SELECT DISTINCT `name`
            FROM `recipe` r
            INNER JOIN `recipe_ingredients` ri
            ON r.id = ri.recipe_id
            WHERE ri.ingredient_id IN (".$ingredient1.",".$ingredient2.",".$ingredient3.")
        ");
        echo '<section id="results">';
        while ($recipe = mysql_fetch_assoc($recipes)) {
            echo $recipe['name'].'<br />';
        }
    }
    echo '</section>';
    ?>

这引发了一个错误。: PHP Parse 错误:语法错误,意外的 ',',期待 ']' 在 \PDC3\sites\c\cupboard2stomach.com\public_html\php\get.php 第 97 行

echo $recipe['name'].'<br />';
echo $recipe['step1'].'<br />';

没有错误但不显示结果。

 echo $recipe['name','step1'].'<br />';

在此处输入图像描述 这是食谱表

在此处输入图像描述

echo '<section id="results">';
    while ($recipe = mysql_fetch_assoc($recipes)) {
        echo $recipe['name'].'<br />';
        echo $recipe['step1'].':','<br />';
        echo $recipe['step2'].':','<br />';
        echo $recipe['step3'].':','<br />';


    }
}
echo '</section>';

这些是我得到的结果

4

2 回答 2

1
SELECT r.`name`, r.`step1`
FROM `recipe` r
INNER JOIN `recipe_ingredients` ri
ON r.id = ri.recipe_id
WHERE ri.ingredient_id IN ('".$ingredient1."', '".$ingredient2."', '".$ingredient3."')
GROUP BY r.`name`
于 2013-05-04T17:00:32.117 回答
0

您的查询仅返回名称,并且每次仅返回一次name

在您的 while 循环中,执行一个新查询以查找每个 recipe 的步骤name,并循环执行这些步骤以分别回显它们。

于 2013-05-04T16:57:28.717 回答