Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表单字段值未发送到PHP_Php_Html_Mysql_Forms - Fatal编程技术网

表单字段值未发送到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

这是我为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, $_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'/>"