2013-08-12 34 views
9

Tôi muốn biết làm cách nào để tự động xóa bản ghi khi hết hạn, tôi đang tạo trang web đặt vé máy bay. Tôi cần phải xóa khỏi cơ sở dữ liệu mysql của tôi tất cả các chi tiết chuyến bay hết hạn. Tôi đọc ở đâu đó mà tôi có thể sử dụng cron nhưng tôi không có ý tưởng làm thế nào để làm điều đó. Bất kỳ Trợ giúp nào cho tập lệnh sẽ rất hữu ích.Tự động xóa bản ghi trong bảng khi ngày hết hạn?

+0

Lý do xóa nó. Chỉ cần không hiển thị nếu nó hết hạn –

+0

Không cần. Sử dụng lịch trình dbms. Ví dụ, MySQL đã sở hữu [scheduler] (http://dev.mysql.com/doc/refman/5.1/en/events-overview.html). – BlitZ

+0

sử dụng công việc crone để thực thi tập lệnh hết hạn tự động. – irfanmcsd

Trả lời

10

Bạn có thể cố gắng sử dụng MySQL Events cho rằng:

CREATE EVENT IF NOT EXISTS `dbName`.`eventName` 
ON SCHEDULE 
    EVERY 1 DAY // or 1 HOUR 
COMMENT 'Description' 
DO 
    BEGIN 

    DELETE FROM `dbName`.`TableName` WHERE `DateCol` < NOW(); 

    END 

LƯU Ý rằng MySQL Event Scheduler cần phải được kích hoạt trên máy chủ của bạn: info

SET GLOBAL event_scheduler = ON; 

More here.

+0

bạn có biết lý do nào tại sao giá trị> = không hiển thị giá trị TODAY không? như thể tôi đang nhập> mà không có = – cmario

+0

@cmario nó phụ thuộc vào những gì bạn thực sự so sánh. – BlitZ

+0

Tôi đã tìm cách để làm điều đó SELECT * FROM 'table' WHERE' date'> = date (NOW()). Cảm ơn vi đa trả lơi – cmario

0

Bạn cần dịch vụ để kiểm tra hồ sơ đã hết hạn và xóa định kỳ. Bạn nên sử dụng SQL này:

DELETE YourTable ĐÂU RecordDate < @Expiration

1

hồ sơ Xóa không phải là một ý tưởng tốt, tôi sẽ đề nghị bạn Thêm ActiveFrom và ActiveTo DateTime Cột trong bảng chi tiết của bạn sau đó không hiển thị các hồ sơ đã hết hạn trong giao diện người dùng của bạn.

0

Cron phù hợp nhất trong hoàn cảnh của bạn.

  • Tạo tệp php xóa hoặc gắn cờ chuyến bay không mong muốn, tập lệnh sẽ chỉ kết nối với cơ sở dữ liệu, thực hiện truy vấn của bạn và có thể xuất ra thông báo lỗi/thành công ngắn.
  • Thiết lập công việc định kỳ thực thi tập lệnh php đó mỗi X giờ hoặc bất cứ điều gì bạn muốn.

Nếu bạn đang sử dụng CPanel, bạn có thể thiết lập của bạn cron job from it

0

Make sử dụng CRON Jobs. Có một cái nhìn tại các đại diện dưới đây.

Minutes [0-59] 
| Hours [0-23] 
| | Days [1-31] 
| | | Months [1-12] 
| | | | Days of the Week [Numeric, 0-6] 
| | | | | 
* * * * * home/path/to/command/the_command.sh 

Nếu bạn muốn lên lịch một nhiệm vụ chạy vào thứ 7 hàng tuần lúc 8:30 sáng, có thể nó sẽ giống như thế này.

30 8 * * 6 home/path/to/command/the_command.sh 

Chỉ cần chơi xung quanh với cài đặt của bạn và bạn cuối cùng sẽ nhận được nó.

+0

khoảng giây? – Faytraneozter

Các vấn đề liên quan