10/10/2018, 09:53

thuật toán tính ngày quá hạn

em đang làm website quản lý thư viện.em muốn hỏi về thuật toán tính ngày quá hạn và tính tiền phạt tự động bằng PHP

chẳng hạn em có bảng mượn sách:user_id, book_id,ngay muon, ngay tra


bảng trả sách gồm: ngày mượn - ngày trả - số ngày quá hạn - tiền phạt (1000VND/ngày)- tổng số tiền phạt

làm sao để có thể tự động tính được số ngày đã quá hạn và tính tổng số tiền phạt ạ?

Em cám ơn mọi người
thuyduongcd viết 11:59 ngày 10/10/2018
Database không ổn. Tại sao 2 bảng lại có 2 trường giống nhau chứ. Và đã lưu ngày quá hạn rồi thì còn lưu số tiền phạt làm gì cho dư thừa, vì giá phạt là cố định, khi nào muốn tính tiền phạt chỉ việc truy vấn số ngày quá hạn (thậm chí cũng không cần), chỉ cần lưu ngày mượn và ngày trả. Muốn tính cái gì chỉ cần truy vấn 2 cái này đem trừ nhau là ra ngay, cần gì thêm 1 field nữa cho nặng database.

Còn muốn tính ngày quá hạn theo yêu cầu của bạn thì dùng câu truy vấn:
Code:
$sql="UPDATE tablename SET tienphat=DATEDIFF(ngaytra,ngaymuon) WHERE ..."
conngong viết 12:04 ngày 10/10/2018
bạn ơi.số ngày quá hạn thì tính thế nào hả bạn

sau khi truy vấn ra ngày mượn,ngày trả -> ngày quá hạn= ngày trả - ngày mượn

tổng tiền phạt = ngày quá hạn* 1000/1 ngày

bạn cho mình biết thuật toán để trừ đi, và tính tổng tiền phạt đc ko?
cám ơn bạn nhiều
thuyduongcd viết 12:06 ngày 10/10/2018
Truy vấn ra ngày quá hạn dựa vào ngày mượn và ngày trả:
Code:
SELECT DATEDIFF(ngaytra,ngaymuon) FROM tablename WHERE ...

Có ngày quá hạn rồi chỉ vệc x 1000 là ra số tiền phạt thôi
conngong viết 11:55 ngày 10/10/2018
làm thế nào để in số ngày quá hạn ra ? có cần thêm trừong ngayquahan ko bạn

phép tính nhân tính thế nào hả bạn

có phải thê này ko? $tongtienphat=$ngayquahan*1000

mình mới học php nên không biết,bạn giúp mình nhé.cám ơn bạn rất nhiều

[=========> Bổ sung bài viết <=========]

các bạn ơi cho mình hỏi thuật toán:

Nếu trong thư viện có 8 cuốn sách , mọi người lần lượt mượn thì số sách trong CSDL sẽ tự động trừ đi cho đến khi không còn thì báo là " số sách đã hết" và ngừng không cho mượn

người đọc trả sách thì sẽ tự động cộng thêm 1

ai có phần code mẫu thì send mình với nhé.mình cám ơn
thuyduongcd viết 12:05 ngày 10/10/2018
Trời đất! Chưa biết cách thực hiện tính nhân nữa mà làm project quản lý thư viện. Sao không tìm hiểu php bằng những cái đơn giản trước đã
conngong viết 12:02 ngày 10/10/2018
uhm,mình chưa làm bao giờ.bạn giúp mình nhé.cám ơn bạn
kenphan19 viết 12:00 ngày 10/10/2018
[quote]SELECT DATEDIFF(ngaytra,ngaymuon) [b]AS ngayquahan[b] FROM tablename WHERE ...
chắc không biết cái này: dùng AS để chuyển từ DATEDIFF(ngaytra,ngaymuon) sang ngayquahan
NsT viết 12:06 ngày 10/10/2018
Để biết được số sách còn lại thì bạn thêm 1 trường vào là tongsosach. Mỗi lần có người mượn thì

Code:
$query = "Update tablename set tongsosach = tongsosach - 1 where id='$bookid'";
Khi tongsosach = 0 thì sẽ hiện thông báo là sách đã mượn hết.

Còn khi có người trả sách thì sẽ tăng tongsosach lên 1

Code:
$query = "Update tablename set tongsosach = tongsosach + 1 where id='$bookid'";
conngong viết 11:56 ngày 10/10/2018
cám ơn mọi người vì đã giúp mình nhé
Bài liên quan
0