php:crud应用程序在更新/编辑方面有问题

aydmsdu9  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(326)

我正在制作一个菜谱应用程序,更新一个菜谱方法时遇到了问题。我有更新表单和sql查询。我甚至检查了表单输入变量 name , description ,和 url 在我的 if 语句是更新的值。他们是。。我的sql是有效的。然而,当我填写编辑表单并点击submit时,我被导航回菜谱列表页面,其中我编辑的菜谱没有更改。
这是我的密码。

<?php 

$recipe_id = $_GET['recipe_id'];
$recipes_fetch_existing_row_query = mysqli_query($con, "SELECT * FROM recipes WHERE id='$recipe_id'");
$recipe = mysqli_fetch_array($recipes_fetch_existing_row_query);
$name = $recipe['name'];
$description = $recipe['description'];
$url = $recipe['url'];

if(isset($_POST['update_recipe'])) {
    $name = $_POST['recipe_name'];
    $description= $_POST['recipe_description'];
    $url = $_POST['recipe_url'];
    $recipe_update_query = mysqli_query($con, "UPDATE recipe SET name='$name', description='$description', url='$url' WHERE id='$recipe_id'");
    header("Location: ../../../index.php");
}
?>

<form action="../../../index.php" class="update_recipe_form" method="POST">
  <input type="text" name="recipe_name" placeholder="name" value="<?php echo $recipe_name ?>" required>
  <textarea name="recipe_description" id="recipe_description" placeholder="Enter a brief description of the recipe"><?php echo $recipe_description; ?></textarea>
  <input type="text" name="recipe_url" id="recipe_url" value="<?php echo $recipe_url ?>" placeholder="url" required>
  <input type="submit" name="update_recipe" id="update_recipe" value="Update">
</form>

Any ideas? :(
qlvxas9a

qlvxas9a1#

你写的select请求正常吗 recipes ,但你写的更新请求 recipe 本来应该是同一张table的,不是吗?
食谱

x8goxv8g

x8goxv8g2#

当你 POST 提交表单后,第一行将运行 null 价值,因为没有 $_GET['...'] .

$recipe_id = $_GET['recipe_id'];

把身份证和你的表格一起发送,也许是隐藏的字段。你可以继续:

if ($recipe_id == null) {
    $recipe_id = $_POST['recipe_id'];
}

$recipe_id = $_REQUEST['recipe_id'];

https://www.php.net/manual/en/reserved.variables.request.php
正如其他评论员所提到的,这段代码不是为了生产性的使用而保存的!

相关问题