Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chức năng 'Chỉnh sửa' cho các bài đăng trên diễn đàn và những thứ tương tự

Bạn cần 2 tệp PHP để thực hiện việc này. Bạn có thể sử dụng một tệp duy nhất nhưng khái niệm này dễ giải thích hơn theo cách này.

  1. Một biểu mẫu sẽ tải nội dung cơ sở dữ liệu vào các trường mà sau đó người dùng có thể chỉnh sửa các giá trị rồi gửi chúng để thay đổi bằng cách nhấn nút sau khi hoàn tất.
  2. Tệp nhận thông tin đã thay đổi và cập nhật cơ sở dữ liệu.

Đây là một ví dụ mã cho tệp đầu tiên:

<?php 
// connect to SQL
$dbcnx = @mysql_connect("localhost", "db_name", "password");
if (!$dbcnx) {
  echo( "<P>Unable to connect to the database server at this time.</P>" );
  exit();
}
// connect to database
$dbcon = @mysql_select_db("db_table", $dbcnx);
if (!$dbcon) {
  echo( "<P>Unable to locate DB table at this time.</P>" );
  exit();
}

#data preparation for the query
$id = intval($_GET["id"]);

# selects title and description fields from database
$sql = "SELECT * FROM table_name WHERE id=$id";
$result = mysql_query($sql) or die(mysql_error());        
# retrieved by using $row['col_name']
$row = mysql_fetch_array($result);

?>

<h3>Edit</h3>
<form action="save_edit.php" enctype="multipart/form-data" method="post" name="myForm" />
  <table>
    <tr>
      <td><b>Title</b></td>
      <td><input type="text" size="70" maxlength="100" name="title" value="<?php echo $row['title'] ?>"></td>
    </tr>
    <tr>
      <td><b>Description</b></td>
      <td><textarea cols="80" rows="18" name="description"><?php echo $row['description']; ?></textarea></td>
    </tr>
  </table>
  <input type="hidden" name="id" value="<?php echo $id; ?>" />
  <input name="enter" type="submit" value="Edit">
</form>

<?php 
mysql_close($dbcnx);
?>

Và đây là một ví dụ về mã cho tệp thứ hai, nơi nó nhận các thay đổi do người dùng thực hiện và cập nhật cơ sở dữ liệu.

<?php
// connect to SQL
$dbcnx = @mysql_connect("localhost", "db_name", "password");
if (!$dbcnx) {
  echo( "<P>Unable to connect to the database server at this time.</P>" );
  exit();
}
// connect to database
$dbcon = @mysql_select_db("db_table", $dbcnx);
if (!$dbcon) {
  echo( "<P>Unable to locate DB table at this time.</P>" );
  exit();
}

#data preparation for the query
$id = intval($_POST["id"]);
foreach ($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string($value);

$sql = "UPDATE table_name SET 
        title='$_POST[title]', 
        description='$_POST[description]', 
        WHERE id=$id";

if (!mysql_query($sql,$dbcnx)) {
  die('Error: ' . mysql_error());
}

mysql_close($dbcnx);
header ("location: http://www.domain.com/url_to_go_to_after_update");
?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysqli_fetch_assoc ($ result), con trỏ di chuyển đến bản ghi tiếp theo. Có cách nào để đặt lại con trỏ về đầu kết quả truy vấn không?

  2. Độ tuổi tìm kiếm trong mysql, php

  3. Trong MySQL:Làm cách nào để chuyển tên bảng dưới dạng đối số thủ tục và / hoặc hàm được lưu trữ?

  4. Khi nào sử dụng utf-8 và khi nào sử dụng latin1 trong MySQL?

  5. Cách chèn vào hàng MYSQL từ nhiều mảng $ _POST