我似乎无法找到错误。此表单应该更新数据库中的类别。
当我尝试更新类别时,它会给我这个错误
注意:未定义的变量:第90行的C:\ xampp \ htdocs \ CMS_project \ admin \ categories.php中的cat_id QUERY FAILED!您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第1行
这是下面的代码,我已经评论了第90行。
<form action="categories.php" method="post">
<div class="form-group">
<label for="cat_title">Update Category</label>
<?php
if(isset($_GET['edit']))
{
$cat_id = $_GET['edit'];
$query = "SELECT * FROM categories WHERE cat_id = {$cat_id} ";
$select_categories_id = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($select_categories_id))
{
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];
?>
<input value="<?php if(isset($cat_title)){echo $cat_title;} ?>" type="text" name="cat_title" class="form-control">
<?php } } ?>
<?php
if(isset($_POST['update_category']))
{
$the_cat_title = $_POST['cat_title'];
//Below is line 90
$query = "UPDATE categories SET cat_title = '{$the_cat_title}' WHERE cat_id = {$cat_id} ";
$update_query = mysqli_query($connection, $query);
if(!$update_query)
{
die("QUERY FAILED!" . mysqli_error($connection));
}
}
?>
</div>
<div class="form-group">
<input type="submit" name="update_category" value="Update Category" class="btn btn-primary">
</div>
</form>
这是表单获取ID
的地方 <?php
while($row = mysqli_fetch_assoc($select_categories))
{
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];
echo "<tr>
<td>{$cat_id}</td>
<td>{$cat_title}</td>
<td><a href='categories.php?delete={$cat_id}'>Delete</a></td>
<td><a href='categories.php?edit={$cat_id}'>Edit</a></td>
</tr>";
}
?>
答案 0 :(得分:0)
$ cat_id变量根本没有在查询范围内定义。这意味着,$ cat_id变量仅在if语句中声明,您可以在其中检查是否设置了$ _GET ['edit']。 要修复它,请在表单中添加一个带有类别ID的隐藏字段,然后在PHP中添加:
$cat_id = $_POST['cat_id'];
就在第90行之前。
请记住使用mysqli_real_escape_string来防止SQL注入问题。
答案 1 :(得分:0)
我明白了。
我必须从表单中的操作中删除categories.php,如果我将其留空,则可以正常工作。 :)