好吧,我不是很擅长PHP但是尽可能多地学习。所以我用管理员面板制作了网站。在管理面板中,我使用2个按钮显示数据库中的所有行 - '删除'和'编辑'。删除按钮正在运行,但我在编辑时遇到问题。这就是我用按钮显示结果的方法
for ($i = $start; $i < $end; $i++)
{
// make sure that PHP doesn't try to show results that don't exist
if ($i == $total_results) { break; }
// echo out the contents of each row into a table
echo "<tr>";
echo '<td><p>' . mysql_result($result, $i, 'id') . '</p></td>';
echo '<td>' . mysql_result($result, $i, 'caption') . '</td>';
echo '<td>' . mysql_result($result, $i, 'name') . '</td>';
echo '<td>' . mysql_result($result, $i, 'alt') . '</td>';
echo '<td>' . mysql_result($result, $i, 'title') . '</td>';
echo '<td><a href="delete.php?id=' . mysql_result($result, $i, 'id') . '">Delete</a></td>';
echo '<td><a href="edit.php?id=' . mysql_result($result, $i, 'id') . '">Edit</a></td>';
echo "</tr>";
}
当我点击编辑页面时,转到edit.php,而网址是选择图像的ID。对于ex(/edit.php?id=68)。这是edit.php
<form action="" method="post" enctype="multipart/form-data">
Choose category
<select name="img_category">
<option value="1">Cars</option>
<option value="2">Animals</option>
<option value="3" >PC's</option>
<option value="4" >Sport</option>
</select><br/><br />
Caption
<input type="text" name="caption" /><br /><br />
Alt
<input type="text" name="alt" /><br /><br />
Title
<input type="text" name="title" /><br /><br />
<input type="submit" name="submit" id="submit" value="Edit" /><br /><br />
</form>
<?php
if (isset($_POST['submit']))
{
require_once("../include/db.php");
$id =$_POST['id'];
$caption = $_POST['caption'];
$title = $_POST['title'];
$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'";
$result = mysqli_query($con, $query) or die("Error in query: ".mysqli_error($con));
}
?>
我希望能够修改图片的caption
,alt
和title
。现在,当我按下编辑&#39;什么都没发生。我确定不是那么难,但对我来说有点儿。
答案 0 :(得分:4)
在你的sql语句中,你似乎没有添加你的id。
$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = 'id'";
您应该添加$
$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'";
<强>更新强>
表单中似乎没有ID字段。您尝试在POST中检索它,但没有这样的字段来从中检索数据。您应该通过表单或其他方式将id传递给查询。
<强> UPDATE2:强>
正如其他人所说,最简单的方法是从GET而不是POST获取你的ID。
更改您的
$id =$_POST['id'];
到
$id =$_GET['id'];
答案 1 :(得分:2)
使用GET方法从url中捕获id
只需更改
$id =$_POST['id'];
到
$id =$_GET['id'];
答案 2 :(得分:2)
您正在尝试使用$ _POST检索$ _GET值,这会将$ id变量留空。
将$id =$_POST['id'];
更改为$id = $_GET['id'];
同时将您的查询更改为
$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'";
答案 3 :(得分:2)
添加
<input type="hidden" name="id" value='<?=(int)$_GET['id'] ?>'/>
表格中的某个地方。
必须补充:您的代码存在一些安全问题。记住你的代码还没有生产就绪!但这不是你的问题所以我不会进入那个。
答案 4 :(得分:1)
试试这个
<?php
if (isset($_POST['submit']))
{
require_once("../include/db.php");
$id =$_GET['id'];
$caption = $_POST['caption'];
$title = $_POST['title'];
$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'";
$result = mysqli_query($con, $query) or die("Error in query: ".mysqli_error($con));
}
?>