如何回显数据库的多个结果

时间:2013-05-04 16:55:01

标签: php

如何回显多个结果。目前显示配方名称,但我希望能够回显数据库中的步骤。因此,数据库中的字段将是第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解析错误:第97行\ PDC3 \ sites \ c \ cupboard2stomach.com \ public_html \ php \ get.php中的语法错误,意外',',期待']'

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

没有错误但不显示结果。

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

enter image description here 这是食谱表

enter image description here

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>';

这些是我回来的结果

2 个答案:

答案 0 :(得分: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`

答案 1 :(得分:0)

您的查询仅返回名称,每次name发生一次。

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