PHP - 在db问题中编辑数据

时间:2014-10-03 08:33:59

标签: php mysql edit

我要保持简短。我在php中写了一个非常基本的代码,它将内容添加到mysql db中,我遇到了编辑问题。这是我的表格:

if($idExists)
{
   Print '
      <form action="editIt.php" method="POST">
      <div name="id"> '. $id . '</div>
      Enter new detail: <input type="text" name="details"/><br/>
      public post? <input type="checkbox" name="public[]" value="yes"/><br/>
      <input type="submit" value="Update List"/>
      </form>
   ';
}

这是我的editIt.php

//session start and stuff
if(filter_input(INPUT_SERVER, 'REQUEST_METHOD', FILTER_SANITIZE_STRING) == "POST")
{
    echo "<script type='text/javascript'>alert('EDITIT!');</script>";
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("WebSiteDB") or die ("Cannot connect to database");
    $id = $_POST['id'];
    $details = mysql_real_escape_string($_POST['details']);
    $time = strftime("%X");
    $date = strftime("%B %d, %Y");
    $isPublic = 'no';

    foreach($_POST['public'] as $eachCheck)
    {
        if($eachCheck != NULL)
            $isPublic = "yes";
    }

    mysql_query("UPDATE list SET details='$details', dateEdited='$date', timeEdited= '$time', public='$isPublic' WHERE id='$id'");
    header("location: home.php");
}

我真的无法找到这个代码的问题(这不是很奇怪,我是网络新手的新手)然而它只是转到home.php并且不会更改数据库中的数据。拜托,帮我跳这个窗台,这样我就可以继续我的生活。

1 个答案:

答案 0 :(得分:2)

我认为,问题出在这一行$id = $_POST['id'];。在表单提交时,仅提交输入字段值,而不是DIV值。

所以,请改变:

if($idExists)
{
   Print '
      <form action="editIt.php" method="POST">
      <div name="id"> '. $id . '</div>
      Enter new detail: <input type="text" name="details"/><br/>
      public post? <input type="checkbox" name="public[]" value="yes"/><br/>
      <input type="submit" value="Update List"/>
      </form>
   ';
}

致:

if($idExists)
{
   Print '
      <form action="editIt.php" method="POST">
      <input type="hidden" name="id" value="' . $id . '">
      Enter new detail: <input type="text" name="details"/><br/>
      public post? <input type="checkbox" name="public[]" value="yes"/><br/>
      <input type="submit" value="Update List"/>
      </form>
   ';
}