我无法让我的更新查询工作(php / mysqli)

时间:2015-03-05 04:25:15

标签: php mysql mysqli

我发布了表单的缩短版本并更新了行。我真的很感激任何帮助。我花了最后48小时尝试了所有我能想到的东西,这让我疯狂。如果我删除行if($ _ SERVER [“REQUEST_METHOD”] ==“POST”),程序将在加载页面时运行,并使用空白字段更新URL中ID的表。提前致谢。这是代码:

<?php   
$id = $_GET['id']; 
$user = $_SESSION['user'];
Echo '<form action="editone.php" method="POST">
    Enter new name:<input type="text" name="namex" />
    <input type="submit" name="Submit" value="Update List" /> </form>';

if($_SERVER["REQUEST_METHOD"]=="POST")
{
$dblink = "nn000185_manager";
$cxn = new mysqli("localhost","user","password", $dblink);
$details = mysqli_real_escape_string($cxn, $_POST['namex']);
$numb = mysqli_real_escape_string($cxn, $id);
$query = "UPDATE  EDITORES SET nom_edit = '$details' WHERE  edit_id =   $numb";
mysqli_query($cxn, $query);
echo $query;
}
?>

4 个答案:

答案 0 :(得分:0)

我认为您的表单操作没有通过ID。

<form action="editone.php" method="POST">

如果您将单个文件用作表单编辑器操作,则表单编辑器网址应为{{3} }

尝试将表单操作更改为

<form action="editone.php?id='.$_GET['id'].'" method="POST">

或只是将操作留空

<form action="" method="POST">

答案 1 :(得分:0)

好的 - 也许我离这里不远,但我看到了以下问题。

1)您的方法是POST,但您的ID来自GET。 2)我没有看到id来自哪里。它可能来自某个地方但没有发布,但我没有看到它。

您是否检查过验证该值是否实际传递给了php?

试试这个

echo "GET = " . var_dump($_GET); 
echo "<br><br>";
echo "POST = " . var_dump($_POST);
exit();

发布结果,然后发布id来自哪里,如果你仍然无法弄明白。 :)

答案 2 :(得分:0)

使用以下代码:

$query = "SELECT now_edit, FROM EDITORIES WHERE edit_id='$numb' LIMIT 1"; 

答案 3 :(得分:0)

我认为您的网页最初是从另一个网页上的锚点链接调用的,这就是您从id获取$_GET['id']的原因。

当用户按下提交按钮时,表单将作为POST提交,因此所有数据都将在$ _POST中,因此$ _GET ['id']将失败,并且应该生成错误消息。

您需要从第一个实例化中保存$ _GET ['id'],以便在表单发布给您时使用它。因此,请将其放在hidden字段中,该字段将通过帖子发布给您

<?php   
  session_start();
  $user = $_SESSION['user'];
  if($_SERVER["REQUEST_METHOD"]=="GET") {
      if ( isset($_GET['id']) ) {
        $id = $_GET['id']); 
      } else {
        // no param passed, could be a hack
        header('Location: some_error_page.php');
        exit;
      }

      echo '<form action="editone.php" method="POST">';
      echo '<input type="hidden" name="id" value="' . $id . '">';
      echo 'Enter new name:<input type="text" name="namex" />';
      echo '<input type="submit" name="Submit" value="Update List" /></form>';
  }

  if($_SERVER["REQUEST_METHOD"]=="POST") {
      $dblink = "nn000185_manager";
      $cxn = new mysqli("localhost","user","password", $dblink);
      $details = mysqli_real_escape_string($cxn, $_POST['namex']);
      $numb = mysqli_real_escape_string($cxn, $_POST['id']);
      $query = "UPDATE  EDITORES SET nom_edit = '$details' WHERE  edit_id =  $numb";
      mysqli_query($cxn, $query);
      echo $query;
  }
?>