表单字段值未发送到PHP
这是我为new_posts.php编写的全部(大部分)脚本 更新查询不起作用,而是将其添加到数据库中表单字段值未发送到PHP,php,html,mysql,forms,Php,Html,Mysql,Forms,这是我为new_posts.php编写的全部(大部分)脚本 更新查询不起作用,而是将其添加到数据库中 if(isset($_POST['add_post'])) { $title = mysqli_real_escape_string($db, $_POST['title']); $author = mysqli_real_escape_string($db, $_POST['author']); $category = mysqli_real_escape_string($db, $_PO
if(isset($_POST['add_post'])) {
$title = mysqli_real_escape_string($db, $_POST['title']);
$author = mysqli_real_escape_string($db, $_POST['author']);
$category = mysqli_real_escape_string($db, $_POST['category']);
$body = mysqli_real_escape_string($db, $_POST['body']);
$keywords = mysqli_real_escape_string($db, $_POST['keywords']);
if(isset($_POST['id'])){
$id = mysqli_real_escape_string($db, $_GET['id']);
$query = "UPDATE posts SET title='$title',author='$author',category='$category',body='$body',keywords='$keywords' WHERE id='$id'";
}else{
$d = getDate();
$date = "$d[month] $d[mday], $d[year]";
$query = "INSERT INTO posts (title,author,category,body,keywords,date) VALUES('$title','$author','$category','$body','$keywords','$date')";
}
$db->query($query);
}
if(isset($_GET['post'])) {
$id = mysqli_real_escape_string($db, $_GET['post']);
$p = $db->query("SELECT * FROM posts WHERE id = '$id'");
$p = $p->fetch_assoc();
}
$cats = $db->query("SELECT * FROM categories");
?>
这是HTML部分的一部分
<h1 class="page-header">Add New Post</h1>
<div class="table-responsive">
<form method="post">
<?php if(isset($p)) {
echo "<input type='hidden' value='$id' name='$id'/>";
} ?>
添加新帖子
如果插入了新记录,则您的更新
查询根本没有运行,而插入
查询则没有运行。因此,该检查为假:
if(isset($_POST['id']))
查看您希望提供的内容$\u POST['id']
:
"<input type='hidden' value='$id' name='$id'/>"
身份证在GET还是POST?您正在检查POST中的设置,然后在GETupdated my question中转义以查看更多代码我已更新问题以查看更多代码。很遗憾,将名称从…更改为。。。。。name='$id'到name='id'..…不起作用。@GrahamMiller:它现在以什么具体方式失败了?请注意,您还试图引用$\u POST['id']
和$\u GET['id']
。根据您现在向我们展示的
标记,我只希望$\u POST['id']
包含一个值。您可以进行调试以确认SQL查询。它不会更新到数据库,但会向数据库插入新记录。我已经创建了一个博客CMS,用户可以编辑他/她的帖子。这是用户正在编辑文章,但不是编辑/更新它,而是创建一个新的博客文章并保留旧的。@GrahamMiller:那么是时候进行一些调试了。尝试更新记录时,$\u POST['id']
的值是多少?执行哪些特定的代码块?(也就是说,您是否进入所讨论的if
或else
)您正在执行的SQL查询的值是多少?如果我变量为dump($\u POST['id');然后我得到我正在编辑的帖子的id,这是正确的,当我想要编辑帖子时,我需要它用这个id更新帖子的信息,这个id没有发生,而是跳过if语句并执行else。希望这有帮助?
"<input type='hidden' value='$id' name='id'/>"