PHP数据不在两页之间发送

时间:2018-05-11 18:14:48

标签: php sql

我在尝试在两个页面之间发送数据时遇到问题。我找了一些例子,但根本无法弄明白;令人沮丧。

SQL如下:

$query = "SELECT post_id, title , bodyofpost , username, datetime
            FROM Post GROUP BY datetime DESC
            LIMIT ?,?";

以下是第一个PHP页面的代码片段,其中包含需要发送给另一个的数据:

while ($stmt->fetch()) 
  {

    echo "Post ID: ".$post_id."<br/>";
    echo "Title : ".$title."<br/>";
    echo "<strong> Username: ".$username."</strong><br />";
    echo "BodyofPost: ".$bodyofpost."<br/>";
    echo "Date Created: ".$datetime."<br/><p>";
    echo $addComment = "<a href=\"addComments.php?$post_id\">AddComment</a>";
    echo"</br>";
    echo"</br>";


  }

这是需要发送postID的添加评论页面。它有一个隐藏值,当我尝试将postID插入数据库时​​,postID始终为0,它不应该是。

    echo'</form>';
    echo '<form method="post" action="addComments.php">';
    echo'<input type="hidden" name="post_id" value="postID"/>';
    echo '<table>';
    echo '<tr><td>Comments:</td>';
    echo '<td><input type="text" name="comment"></td></tr>';
    echo '<tr><td colspan="2" align="center">';
    echo '<input type="submit" value="PostComment"></td></tr>';
    echo '</table></form>';

忽略上面的评论表;有用。

这是添加注释代码的一部分,我尝试仅将postID插入数据库以测试它是否有效,但它没有。

if(isset($_GET['post_id'])){
    $postID= $_GET['post_id'];
    $sql = "INSERT INTO Comments (post_id)
    VALUES ('$postID') ";

}

所以,让我们说我们有10个帖子,我们按降序排序,然后点击链接发布10.然后它会将我发送到addcomment页面并输入所需的评论等等。然后当我去检查我的数据库中插入的注释,帖子ID总是0;它应该是10,因为它是我评论的postID。任何帮助表示赞赏!!谢谢!!

1 个答案:

答案 0 :(得分:3)

您的表单方法设置为POST,您的代码正在设置GET方法。

试试这个:

if(isset($_POST['post_id'])){
    $postID= $_POST['post_id'];
    $stmt = $connection->prepare("INSERT INTO Comments (post_id)
    VALUES (?) ");
    $stmt->bind_param('i',$postID);
    $stmt->execute();
    $stmt->close();
}