PHP MySQL UPDATE查询无效

时间:2013-02-04 14:50:04

标签: php mysql

我是一个新的PHP编码器,我开始了一个cms面板项目,首先有三个选项:新文章,删除文章和编辑文章。我的项目中甚至没有一个错误,但是当我试图编辑帖子时,一切都进展顺利,除了保存。帖子没有保存!!!而且没有任何错误!我试图从昨天开始解决这个问题。这很烦人。

以下是我的代码的一部分:

editTreat.php:

    <!DOCTYPE html>
<?php
    include("includes/functions.php");
    $ctreat = getTreat($_GET["id"]);
?>
<html lang="en">
    <head>
        <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
        <meta charset="utf-8" />
        <title>Control panel</title>
    </head>
    <body>
        <form action="doEditt.php" method="post">
            <table>
                <tr>
                    <td>
                        <label for="tName">:Title</label>
                    </td>
                    <td>
                        <input type="text" name="tName" value="<?php echo $ctreat["Title"]; ?>"></input>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label for="tContent">:Content</label>
                    </td>
                    <td>
                        <textarea name="tContent"> <?php echo $ctreat["Content"]; ?> </textarea>
                        <script type="text/javascript">
                            CKEDITOR.replace('tContent');
                        </script>
                    </td>
                </tr>
                <tr>
                    <td colspan="2"><input type="submit" name="submit" value="Edit"></input></td>
                    <td> <input type="hidden" name="id" value="<?php echo $_GET["ID"]; ?>" /></td>
                </tr>
            </table>
        </form>
    </body>
</html>

doEditt.php:

   <?php
    include("includes/functions.php");
    if(isset($_POST["submit"])) {
        if(isset($_POST["tName"])) {
            editTreat($_POST["tName"],$_POST["tContent"],$_POST["id"]);
            header("Location: treatments.php");
        } else {
            echo "Please fill the title";
            include("editTreat.php");
        }
    } else {
        header("Location: editTreat.php");
    }
?>

我的includes / functions.php的一部分:

    function editTreat($tName, $tContent, $id) {
    $id = (int) $id;
    $query = mysql_query("UPDATE `treatments` SET title = '$tName', content = '$tContent' WHERE ID = '$id'") or die(mysql_error());
    header("Location: treatments.php");
}

function getTreat($id) {
    $id = (int) $id;
    $query = mysql_query("SELECT * FROM `treatments` WHERE ID = '$id'") or die(mysql_error());
    return mysql_fetch_assoc($query);
}

所以,如果你能帮助我,请帮助我。谢谢!

2 个答案:

答案 0 :(得分:0)

在第4行,你引用id小写

$ctreat = getTreat($_GET["id"]);

注意小写ID

然后在表格中引用ID大写

<?php echo $_GET["ID"]; ?>

PHP区分大小写...是id大写或小写

帖子ID未发送到提交表单,这看起来是您的问题。

答案 1 :(得分:0)

一些明显的问题:

  1. 我确定 id 列不是字符串,为什么要引用?

    UPDATE `treatments` SET title = '$tName', content = '$tContent' WHERE ID = $id
    
  2. 您应该转义任何用户输入。

    $tName = mysql_real_escape_string($tName);
    
  3. PHP区分大小写,您对$_GET["id"]使用不同的大小写。我确定你想使用$_GET["id"]

    $ctreat = getTreat($_GET["id"]);
    VERSUS
    echo $_GET["ID"];