发布评论的数据未转移到查询

时间:2014-05-10 00:13:52

标签: php mysql sql-update

我有一个我想要使用的更新查询,但它无法正常工作。除了CommentID之外,所有数据都已过帐,我无法理解原因。

这是我的查询输出:

UPDATE comments SET
    title='PHP',universitet='Högskolan',
    kurs='Objekt orienterad programmering i PHP',
    kurskod='HIG480-34', betyg='8', message='kom igen nu PHP'
WHERE CommentID = ''

如您所见,WHERE CommentID = ''为空。

<?php
require_once 'DBConnection/connection.php';

class EditPost{

    public $comment;
    public $id;


    public function __construct() {
        $this->comment = comment;
        $this->id = mysql_real_escape_string($_GET['CommentID']);

    }




    public function EditThePost(){

        if(!isset($_POST['editComment'])){

            $query = "SELECT * FROM comments WHERE CommentID = '$this->id'";
            $result = mysql_query($query);
            $this->comment = mysql_fetch_array($result);


        }elseif(isset($_POST['CommentID'])){

            $updateQuery = "UPDATE comments SET title='$_POST[title]',universitet='$_POST[universitet]',kurs='$_POST[kurs]',kurskod='$_POST[kurskod]',betyg='$_POST[betyg]',message='$_POST[TheComment]' WHERE CommentID = '$_POST['CommentID]'";
            mysql_query($updateQuery) or die(mysql_error());

            echo $updateQuery;
            header("Location: loggedin.php");
            exit();


        }
    }


}

以下是包含HTML的编辑页面:

<?php
session_start();
error_reporting(E_ALL ^ E_NOTICE);
require_once 'DBConnection/connection.php';
require_once 'Posting/editPost.php';
$edit = new EditPost();
$edit->EditThePost();
?>
<!DOCTYPE html>
<html lang="sv">
    <?php include('incl/header.php'); ?>

    <body>

        <!--The Navbar-->
        <div class="navbar navbar-inverse navbar-fixed-top">

            <div class="container" align="center">
                <a href="loggedin.php">Hem</a> ||
                <?php include('incl/logoutUser.php'); ?>
            </div>

        </div>



        <!--The page container-->
        <div id="container" >  
            <img src="logo.png" id="logoType" align="center">
            <br>
            <br>
            <span class="label label-warning">Redigera inlägg:</span>

            <div class="container" align="left">
                <br>
                <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">

                    <p><span class="label label-info">Titel: </span> <br><input type="text" require name="title" placeholder="Ange titel.." value="<?php echo $edit->comment['title'] ;?>"</p>
                    <p><span class="label label-info">Högskola: </span> <br><input type="text" require name="universitet" placeholder="Ange högskola.." value="<?php echo $edit->comment['universitet']?>"></p>
                    <p><span class="label label-info">Kurs: </span> <br><input type="text" require name="kurs" placeholder="Ange kurs.."  value="<?php echo $edit->comment['kurs']; ?>"></p>
                    <p><span class="label label-info">Kurskod: </span> <br><input type="text" require name="kurskod" placeholder="Ange kurskod.."  value="<?php echo $edit->comment['kurskod']; ?>"></p>
                    <p><span class="label label-info">Betyg: </span> <br><input type="text" require name="betyg" placeholder="Betyg mellan 1-10" value="<?php echo $edit->comment['betyg']; ?>"></p>



                    <p><span class="label label-info">Meddelande: </span></p>
                    <textarea rows="10" cols="80" require name="TheComment" placeholder="Skriv ditt meddelande.." ><?php echo $edit->comment['message'];?></textarea>


                    <br><br>
                    <input type="hidden" name="CommentID" value="<?php echo $_POST['CommentID'];?>"/>
                    <p><input type="submit" class="btn btn-primary" name="editComment" value="Redigera inlägg"></p>
                    <br>
                </form>
                <br />
            </div>
        </div>

        <?php include('incl/footer.php'); ?>

    </div>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

我会在忽略安全问题的同时回答你的问题,主要是因为我现在没有太多时间。

您的构造函数中有一个问题,即您将$_GET['CommentID']的内容分配给$_POST['CommentID']的一个变量。这是一个非常糟糕的主意,你应该使用$_GET['CommentID']$_POST['CommentID'],两者都要求麻烦。

您的评论ID未发布的原因是因为它不在您的HTML表单中。从你的链接,你正在做

<input type="hidden" name="id" value="<?php echo $_GET['CommentID'];?>"/>

要做你想做的事,应该阅读

<input type="hidden" name="CommentID" value="<?php echo $_POST['CommentID'];?>"/>

将此输入的name属性更改为CommentID,阅读$_POST['CommentID']的内容,您的代码应该有效。