从mysql编辑行

时间:2014-04-17 12:09:46

标签: php mysql

好吧,我不是很擅长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));
}
?>

我希望能够修改图片的captionalttitle。现在,当我按下编辑&#39;什么都没发生。我确定不是那么难,但对我来说有点儿。

5 个答案:

答案 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));
}
?>