簡體   English   中英

我無法讓我的更新查詢工作(php / mysqli)

[英]I can't get my update query to work (php / 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;
}
?>

我認為你的表單動作沒有傳遞id。

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

如果您將此單個文件用作表單編輯器操作 ,則表單編輯器U​​RL應為http://localhost/editone.php?id = 1

嘗試將表單操作更改為

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

或者只是將動作留空

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

好的 - 也許我離這里不遠,但我看到了以下問題。

1)您的方法是POST,但您的ID來自GET。 2)我沒有看到id來自哪里。 它可能來自某個地方但沒有發布,但我沒有看到它。

你檢查過驗證值是否實際傳遞給了php?

嘗試這個

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

發布結果,然后發布id來自哪里,如果你仍然無法弄明白。 :)

使用以下代碼:

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

我假設您的頁面最初是從另一個頁面上的錨點鏈接調用的,這就是您從$_GET['id']獲取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;
  }
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM