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 "

Error: " . $e->getMessage() . "

"; } } 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 "

Book added successfully!

"; } catch (PDOException $e) { echo "

Error: " . $e->getMessage() . "

"; } } /////////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 "

Borrowers added!

"; }catch(PDOException $e){ echo "

Error: " . $e->getMessage() . "

"; } } /////////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 "

Loan added!

"; }catch(PDOException $e){ echo "

Error: " . $e->getMessage() . "

"; } $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 '
'; print_r($result); echo '
'; } } ?>