190 lines
No EOL
6.8 KiB
PHP
190 lines
No EOL
6.8 KiB
PHP
<?php
|
|
include "bootstrap.php";
|
|
|
|
/////////GET BOOKS/////////
|
|
function getBooks($pdo){
|
|
$stmt = $pdo->query("SELECT bookID, title, author FROM books ORDER BY title ASC");
|
|
$books = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
return $books;
|
|
}
|
|
|
|
/////////GET BORROWERS/////////
|
|
function getBorrowers($pdo){
|
|
$stmt = $pdo->query("SELECT * FROM borrowers ORDER BY lastName ASC");
|
|
$borrowers = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
return $borrowers;
|
|
}
|
|
|
|
/////////GET AVAILABLE COPIES OF BOOK/////////
|
|
function getAvailableCopiesOfBook($pdo, $bookID){
|
|
$stmt = $pdo->query("SELECT * FROM copies WHERE bookID = $bookID AND isBorrowed = 0 ORDER BY copyID ASC");
|
|
$copies = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
return $copies;
|
|
}
|
|
|
|
/////////GET BORROWED COPIES OF BORROWER/////////
|
|
function getBorrowedCopiesOfBorrower($pdo, $borrowerID){
|
|
$stmt = $pdo->query("SELECT
|
|
loans.loanID,
|
|
loans.copyID,
|
|
copies.bookCondition as bookCondition,
|
|
books.title as bookTitle,
|
|
books.author as bookAuthor
|
|
FROM loans
|
|
INNER JOIN copies ON loans.copyID = copies.copyID
|
|
INNER JOIN books ON copies.bookID = books.bookID
|
|
WHERE borrowerID = $borrowerID AND returnedDate IS NULL
|
|
ORDER BY copyID ASC");
|
|
$copies = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
return $copies;
|
|
}
|
|
|
|
/////////GET ACTIVE LOANS/////////
|
|
function getActiveLoans($pdo){
|
|
$stmt = $pdo->query("SELECT
|
|
loans.*,
|
|
books.title as bookTitle,
|
|
books.author as bookAuthor,
|
|
borrowers.firstName as firstName,
|
|
borrowers.lastName as lastName,
|
|
borrowers.role as borrowerRole
|
|
FROM loans
|
|
INNER JOIN copies ON loans.copyID = copies.copyID
|
|
INNER JOIN books ON copies.bookID = books.bookID
|
|
INNER JOIN borrowers on loans.borrowerID = borrowers.borrowerID
|
|
WHERE loans.returnedDate IS NULL
|
|
ORDER BY dueDate ASC");
|
|
$activeLoans = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
return $activeLoans;
|
|
}
|
|
|
|
/////////GET LATE LOANS/////////
|
|
function getLateLoans($pdo){
|
|
$currentDate = date("Y-m-d");
|
|
|
|
$sql = "SELECT
|
|
loans.*,
|
|
books.title as bookTitle,
|
|
books.author as bookAuthor,
|
|
borrowers.firstName as firstName,
|
|
borrowers.lastName as lastName,
|
|
borrowers.role as borrowerRole
|
|
FROM loans
|
|
INNER JOIN copies ON loans.copyID = copies.copyID
|
|
INNER JOIN books ON copies.bookID = books.bookID
|
|
INNER JOIN borrowers on loans.borrowerID = borrowers.borrowerID
|
|
WHERE loans.dueDate < ? AND loans.returnedDate IS NULL
|
|
ORDER BY dueDate ASC";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute([$currentDate]);
|
|
|
|
$lateLoans = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
return $lateLoans;
|
|
}
|
|
|
|
/////////ADD COPIES/////////
|
|
function addCopies($pdo, $bookID, $amount, $copyCondition){
|
|
for($i=0; $i<$amount; $i++){
|
|
$sql = "INSERT INTO copies (bookID, bookCondition) VALUES (:bookID, :bookCondition)";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->bindParam(':bookID', $bookID);
|
|
$stmt->bindParam(':bookCondition', $copyCondition);
|
|
|
|
try {
|
|
$stmt->execute();
|
|
$successfullyAdded = true;
|
|
} catch (PDOException $e) {
|
|
echo "<p>Error: " . $e->getMessage() . "</p>";
|
|
}
|
|
}
|
|
if($successfullyAdded){
|
|
if($amount > 1)
|
|
{
|
|
echo $amount . " Copies added successfully!";
|
|
}else{
|
|
echo "Copy added successfully!";
|
|
}
|
|
}
|
|
}
|
|
|
|
/////////ADD BOOK/////////
|
|
function addBook($pdo, $title, $author, $area){
|
|
$sql = "INSERT INTO books (title, author, areaOfStudy) VALUES (:title, :author, :area)";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->bindParam(':title', $title);
|
|
$stmt->bindParam(':author', $author);
|
|
$stmt->bindParam(':area', $area);
|
|
|
|
try {
|
|
$stmt->execute();
|
|
echo "<p>Book added successfully!</p>";
|
|
} catch (PDOException $e) {
|
|
echo "<p>Error: " . $e->getMessage() . "</p>";
|
|
}
|
|
}
|
|
|
|
/////////ADD BORROWER/////////
|
|
function addBorrower($pdo, $firstname, $lastname, $role){
|
|
$sql = "INSERT INTO borrowers (firstname, lastname, role) VALUES (:firstname, :lastname, :role)";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->bindParam(":firstname", $firstname);
|
|
$stmt->bindParam(":lastname", $lastname);
|
|
$stmt->bindParam(":role", $role);
|
|
|
|
try{
|
|
$stmt->execute();
|
|
echo "<p>Borrowers added!</p>";
|
|
}catch(PDOException $e){
|
|
echo "<p>Error: " . $e->getMessage() . "</p>";
|
|
}
|
|
}
|
|
|
|
/////////ADD LOAN/////////
|
|
function addLoan($pdo, $copyID, $borrowerID, $borrowedDate, $dueDate){
|
|
$sql = "INSERT INTO loans (copyID, borrowerID, borrowedDate, dueDate) VALUES (:copyID, :borrowerID, :borrowedDate, :dueDate)";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->bindParam(":copyID", $copyID);
|
|
$stmt->bindParam("borrowerID", $borrowerID);
|
|
$stmt->bindParam("borrowedDate", $borrowedDate);
|
|
$stmt->bindParam(":dueDate", $dueDate);
|
|
|
|
try{
|
|
$stmt->execute();
|
|
echo "<p>Loan added!</p>";
|
|
}catch(PDOException $e){
|
|
echo "<p>Error: " . $e->getMessage() . "</p>";
|
|
}
|
|
|
|
$sql = "UPDATE copies SET isBorrowed=? WHERE copyID=?";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute([1, $copyID]);
|
|
}
|
|
|
|
/////////REMOVE LOAN/////////
|
|
function removeLoan($pdo, $copyID, $loanID, $dateReturned){
|
|
$sql = "UPDATE loans SET returnedDate = ? WHERE copyID = ? AND loanID = ?";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute([$dateReturned, $copyID, $loanID]);
|
|
|
|
$sql = "UPDATE copies SET isBorrowed=? WHERE copyID=?";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute([0, $copyID]);
|
|
}
|
|
|
|
/////////SELECT REQUEST/////////
|
|
function selectRequest($pdo, $selectRequest){
|
|
$stmt = $pdo -> query("SELECT " . $selectRequest);
|
|
|
|
$results = $stmt -> fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
foreach($results as $result){
|
|
echo '<pre>'; print_r($result); echo '</pre>';
|
|
}
|
|
}
|
|
?>
|