2013-12-16 17 views
5

Tôi có db có nhật ký vị trí của phương tiện có nghĩa là mọi tọa độ sẽ được lưu trữ trong db. Bây giờ cho chiếc xe 1, giả sử có 30 mục trong bảng, có nghĩa là 30 địa điểm. Bây giờ khi sự xâm nhập 31 đến, tôi muốn sự xâm nhập đầu tiên nhận được loại bỏ có nghĩa là, những con số tối đa log vị trí mỗi xe nên 30.Xóa bản ghi trong khi chèn giá trị vào cơ sở dữ liệu

Ngay bây giờ các truy vấn chèn là

mysqli_query($con, 
    "INSERT INTO $location_history 
    VALUES('$id','$lat','$lng','$pwd','$v1','$v2','$v3','$v4','$status')") 
or die("Count not insert to location history!"); 
+0

Bạn chỉ nên làm điều đó trong Mysql. Tạo một số lượng vị trí PHP cho chiếc xe của bạn 1 và nếu nó là> 30, sau đó loại bỏ vị trí cũ nhất (hoặc cái bạn không muốn), và sau đó 'INSERT' cái mới. – Thibault

+0

Để thực hiện điều đó trong PHP: thực hiện lựa chọn trước, đếm số lượng bản ghi và nếu chúng trên 30, hãy xóa bản ghi đầu tiên và thực hiện cập nhật chúng. Sau đó chèn cái cuối cùng –

Trả lời

10

Bạn nên sử dụng một trigger function sẽ hoạt động trên mọi lần chèn, đếm các mục nhập và nếu có hơn 30 mục, hãy xóa các mục cũ nhất cho đến khi có ít hơn 30 mục nhập.

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