【问题标题】:PHP - editing data in db issuePHP - 在数据库问题中编辑数据
【发布时间】:2014-10-03 08:33:59
【问题描述】:

我会保持简短。我正在用 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 并且不会更改数据库中的数据。请帮我跳过这个障碍,这样我就可以继续我的生活了。

【问题讨论】:

  • 您能否将您的查询行编辑为mysql_query(...) or die(mysql_error());,以便我们查看抛出的错误消息?
  • 您应该避免使用mysql_*,因为它已被弃用。你试过转储id吗? var_dump($id) ?然后你可以检查是否有这样的 id 行,运行简单的 sql SELECT * from list WHERE id =[your_id];

标签: php mysql edit


【解决方案1】:

我认为,问题出在$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>
   ';
}

【讨论】:

  • 是的!就是这样。非常感谢,这也消除了我对
    东西的困惑!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 2011-02-13
  • 1970-01-01
  • 2022-11-12
相关资源
最近更新 更多