簡體   English   中英

UPDATE查詢不能正常運行php

[英]UPDATE query is not working php

要盡量保持簡短。 我在grid.php文件中有一個while循環來填充表格......

<?php while($product = $products->fetch_assoc()) { ?>
  <tr>
    <td><?php echo $product['cd_id']?></td>
    <td><?php echo $product['cd_title']?></td>
    <td><?php echo $product['cd_musician_fname']?></td>
    <td><?php echo $product['cd_musician_lname']?></td>
    <td><?php echo $product['cd_price']?></td>
    <td><a href="edit.php?id=<?echo $product['cd_id'];?>" type="button" class="btn btn-primary">Edit</a></td>
    <td><a href="delete.php?id=<?echo $product['cd_id'];?>" type="button" class="btn btn-danger">Delete</a></td>
  </tr>
<?php } ?>

如果我單擊第一個錨標記將我帶到edit.php文件,這里是該文件的頭代碼。

<?php include '_includes/db.php';
$cd_id   = trim($_GET['id']);
$message = '';
include '_includes/connection.php';
if($db->connect_error){
  $message = $db->connect_error;
}else{
  $sql  = "SELECT * FROM CD WHERE cd_id = $cd_id";
  $result = $db->query($sql);
  $row = $result->fetch_assoc();
  if($db->error){
    $message = $db->error;
   }
 }
?>

現在我將展示edit.php的html

<!--        Product Musician last name-->
      <fieldset class="form-group">
        <label for="cd_musician_lname">Musician's lirst name</label>
        <input type="text" class="form-control" id="cd_musician_lname" name="cd_musician_lname" value="<?php echo $row['cd_musician_lname'];?>">
      </fieldset>
      <!--        End of Musician last name-->

      <!--        Product price-->
      <fieldset class="form-group">
        <label for="cd_price">Product price</label>
        <input type="text" class="form-control" id="cd_price" name="cd_price" value="<?php echo $row['cd_price'];?>">
      </fieldset>
      <!--    End of Product price-->

      <!--    Form submit button-->
      <a href="edit_confirm.php?id=<?echo $row['cd_id'];?>" type="submit" class="btn btn-primary">Update Record</a>
      <a class="btn btn-primary" href="index.php" role="button">Go Back Home</a>

我有edit.php頁面工作正常,但如果我在字段中進行更改並單擊提交錨標記,我會將該行的所有字段都清空但PK。 這是最終的edit_confirm.php文件的代碼

<?php
include '_includes/db.php';

$cd_id             = trim($_GET['id']);
$cd_title          = $_POST['cd_title'];
$cd_musician_fname = $_POST['cd_musician_fname'];
$cd_musician_lname = $_POST['cd_musician_lname'];
$cd_price          = $_POST['cd_price'];

$message = '';
include '_includes/connection.php';

if($db->connect_error){
  die("Connection failed: ".$db->connect_error);
} else {
$sql = "UPDATE CD SET cd_title='".$cd_title."', cd_musician_fname='".
$cd_musician_fname."', cd_musician_lname='".
$cd_musician_lname."',   cd_price='".$cd_price."' WHERE cd_id = $cd_id ";
$db->query($sql);
var_dump($sql);
 }
?>

<!DOCTYPE html>
<html lang="en">
<head>
<?php include '_includes/main-head.php';?>
</head>
  <body>
  <?php include '_includes/main-navbar.php';?>

  <div class="container">
    <hr>
    <?php
    if($db->query($sql) === TRUE){ ?>
      <h1>Record updated successfully.</h1>
      <?php echo $cd_title; ?>
      <?php echo $record->affected_rows ?> 
      <p> record was updated in the database.</p></br>
   <?php } else { ?>
    <p>Error updating the record: </p> <?php $db->error; ?>
   <?php }; ?>


    <hr>
    <a class="btn btn-primary" href="index.php" role="button">Go Back Home</a>
    </div>
    <?php include '_includes/main-script.php';?>
  </body>
</html>

如果你在edit_confirm.php中注意到我做了一個var_dump來查看變量中的值是什么,它顯示為空。

我需要幫助。 先感謝您。

人們更好的方法是讓測試記錄是否正在更新變得簡單

formsample.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>

    <body>
    <?php 
    include("connection.php");
    $id =  $_GET['id'];
    $query= "select * from clients where id = '$id'";

    $sql = mysqli_query($connect, $query);
    $result = mysqli_fetch_assoc($sql);
    ?>
    <form action="process.php" method="post">
    <input type="text" name="name" id="name" value="<?php echo $result['name'] ?>" />
    <input type="text" name="email" id="email" value="<?php echo $result['email'] ?>" />
    <input type="hidden" name="id" id="id" value="<?php echo $id?>" />
    <input type="submit" />
    </form>
    </body>
    </html>

process.php

        <?php 
    include("connection.php");
    $id = $_POST['id'];
    $name = $_POST['name'];
    $email= $_POST['email'];
    $query = "UPDATE clients set name= '$name', email ='$email' where id = '$id'";
    $sql = mysqli_query($connect, $query);


    ?>
<a href="edit_confirm.php?id=<?echo $row['cd_id'];?>" type="submit" class="btn btn-primary">Update Record</a>

這不是提交表格的正確方式 - 它根本不起作用。

你需要有一個表單開始和結束標記,目標地址在表單元素的action屬性中,方法也在那里,應該發布此表單( method="POST" )。 在您的代碼中,您有一個鏈接,您應該有一個提交輸入,因此它不會提交數據,它只會將您重定向到該URL。 你應該有這樣的東西:

<input type="submit" value="Update Record" />

http://www.w3schools.com/html/html_forms.asp

暫無
暫無

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

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