0

我已经在一个项目上工作了几个星期,用户选择一组成分并提取包含这些成分的食谱,但现在我有一个显示食谱的页面,我希望用户能够单击特定食谱并被定向到显示该食谱及其说明的页面。

我需要使用会话ID吗?

这将显示结果和必须按下才能进入食谱说明页面的按钮。 在此处输入图像描述

这是您被定向到的页面,它将显示食谱图像、名称、成分和说明。

在此处输入图像描述

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


    $recipes = mysql_query("
        SELECT DISTINCT `name`, `step1`, `step2`, `step3`, `image`, `reference`
        FROM `recipe` r
        INNER JOIN `recipe_ingredients` ri
        ON r.id = ri.recipe_id
        WHERE ri.ingredient_id IN (".$ingredient1.",".$ingredient2.",".$ingredient3.")
    ");

    while ($recipe = mysql_fetch_assoc($recipes)) {

        echo '<section id="row">';
        echo '<br />';
        echo $recipe['name'].'<br />'; 
        echo '<br />';
        echo "<img src=\"{$recipe['image']}\" height=100 width=100 /><br />";
        echo '<form action="recipe.php">';
        echo '<input id="search" name="Look" type="Submit" value="Look" >';
        echo '</form>';
        echo '<br />';
        echo 'You will Need: ';
        echo '<br />';
        echo '</section>';

        //echo 'Step 1: ';
        //echo $recipe['step1'].'<br />';
        //echo '<br />';
        //echo 'Step 2: ';
        //echo $recipe['step2'].'<br />';
        //echo '<br />';
        //echo 'Step 3: ';
        //echo $recipe['step3'].'<br />';
        //echo '<br />';
        //echo '<br />';
        //echo '<a href="http://'.$recipe['reference'].'">'.$recipe['reference'].'</a>';  
        //echo '</li>';
        //echo '</ul>';


    }
}


?>

这是用于从数据库中获取信息的 php。

4

2 回答 2

2

我假设你所有的食谱在你的数据库中都有 ID 号。您可以只使用$_GET变量,以便每个“查看”按钮都是包含以下内容的链接:

<?php

//Link part of message
echo "<a href='/recipies/detail.php?id=" . $recipe['id'] . "'>" . $recipe['name'] . "</a>";

?>

这样,用户可以轻松地为食谱页面添加书签或与他人共享该页面。然后在details.php页面上,您只需要在数据库中查找具有指定 ID 的食谱。

于 2013-05-07T19:23:02.650 回答
0

使用配方 ID,而不是会话 ID -

首先添加id到您的查询

// add your `recipe`.`id` to your search query
SELECT DISTINCT `id`, `name`, `step1`, `step2`, `step3`, `image`, `reference`
    FROM `recipe` r
    INNER JOIN `recipe_ingredients` ri
    ON r.id = ri.recipe_id
    WHERE ri.ingredient_id IN (".$ingredient1.",".$ingredient2.",".$ingredient3.")

然后将该 ID 放入您的表单操作链接中 -

    echo "<form action=\"recipe.php?id={$recipe['id']}\">";

然后recipe.php你可以id在你的查询中使用它

   $recipe_id = mysql_real_escape_string ($_GET['id']);
于 2013-05-07T19:23:24.837 回答