<!DOCTYPE html> <html> <head> <meta lang="de"/> <meta charset="utf-8"/> <meta name="viewport" content="device=device-width, initial-scaling=1"/> <link rel="Stylesheet" type="text/css" href="style.css"/> <link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <title>Candle Bibliothek | Suchergebnisse</title> <link rel="icon" href="pictures/candle.png"> <script src="notwendiges_laden.js" defer></script> </head> <body> <header id="header"></header> <!-------------------------------------------------------------------------> <div class="hauptcontainer"> <h1 id="searchResult_heading">Suchergebnisse</h1> <div id="searchResult_container"> <?php $sql = ''; $sourceForm = $_GET['searchType']; // Überprüfen, welches Formular die Datei aufgerufen hat if ($sourceForm == "simple") { // Einfache Suche // Eingegebene Daten in einer Variable speichern $searchQuery = $_GET['searchFor']; // Mögliche Whitspaces hinten und vorne entfernen $searchQuery = trim($searchQuery, " \t\n\r\0\x0B"); // SQL-Befehl zusammenstellen $sql = "SELECT b.BuchID, b.Titel, b.Erscheinungsjahr, b.Bild, b.Verlag, GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName) SEPARATOR ', ') AS 'Autor', GROUP_CONCAT(DISTINCT k.Name SEPARATOR ', ') AS 'Kategorie', b.ISBN, b.Klappentext AS 'Inhalt', sp.Bezeichnung AS 'Sprache', GROUP_CONCAT(DISTINCT st.Text SEPARATOR ', ') AS 'Stichwort', IF(b.Anzahl!=0, 'Verfügbar', CONCAT('Verfügbar ab: ', (SELECT DATE_FORMAT(DATE_ADD(ab.Enddatum, INTERVAL 1 DAY) ,'%d.%m.%Y') FROM `ausgeliehenes_buch` AS ab WHERE ab.BuchID = b.BuchID ORDER BY ab.Reserviert ASC, ab.Enddatum ASC LIMIT 1))) AS 'Verfügbarkeit' FROM `buch` AS b INNER JOIN `buch_verfasst_von_autor` AS bvva ON b.BuchID = bvva.BuchID INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr INNER JOIN `buch_hat_kategorie` AS bhk ON bhk.BuchID = b.BuchID INNER JOIN `kategorie` AS k ON k.KategorieID = bhk.KategorieID INNER JOIN `sprache` AS sp ON sp.SprachenID = b.SprachenID INNER JOIN `buch_hat_stichwort` AS bhs ON bhs.BuchID = b.BuchID INNER JOIN `stichwort` AS st ON st.StichwortID = bhs.StichwortID GROUP BY b.BuchID HAVING b.Titel LIKE '%$searchQuery%' OR b.Erscheinungsjahr LIKE '%$searchQuery%' OR b.Verlag LIKE '%$searchQuery%' OR Autor LIKE '%$searchQuery%' OR Kategorie LIKE '%$searchQuery%' OR Inhalt LIKE '%$searchQuery%' OR Sprache LIKE '%$searchQuery%' OR Stichwort LIKE '%$searchQuery%';"; } else if ($sourceForm == "extended") { // Erweiterte Suche // Eingegebene Daten in Variablen speichern $dropdown1 = $_GET['dropdown1']; $search1 = $_GET['search1']; // Mögliche Whitspaces hinten und vorne entfernen $search1 = trim($search1, " \t\n\r\0\x0B"); $andOr1 = $_GET['and_or1']; if ($andOr1 == 'und') { $andOr1 = 'AND'; } else { $andOr1 = 'OR'; } $dropdown2 = $_GET['dropdown2']; $search2 = $_GET['search2']; // Mögliche Whitspaces hinten und vorne entfernen $search2 = trim($search2, " \t\n\r\0\x0B"); $andOr2 = $_GET['and_or2']; if ($andOr2 == 'und') { $andOr2 = 'AND'; } else { $andOr2 = 'OR'; } $dropdown3 = $_GET['dropdown3']; $search3 = $_GET['search3']; // Mögliche Whitspaces hinten und vorne entfernen $search3 = trim($search3, " \t\n\r\0\x0B"); $startYear = $_GET['Buchdatum1']; $startYear = substr($startYear, 0, 4); $endYear = $_GET['Buchdatum2']; $endYear = substr($endYear, 0, 4); $yearQuery = ''; // Nur Startjahr if ($startYear && !$endYear) { $yearQuery = "WHERE b.Erscheinungsjahr > $startYear"; } // Nur Endjahr else if (!$startYear && $endYear) { $yearQuery = "WHERE b.Erscheinungsjahr < $endYear"; } // Start- und Endjahr else if ($startYear && $endYear) { $yearQuery = "WHERE b.Erscheinungsjahr BETWEEN $startYear AND $endYear"; } $language = $_GET['language']; if ($language == 'Alle Sprachen') { $language = '%%'; } $available = isset($_GET['status']); if ($available) { $available = 'Verfügbar'; } else { $available = '%%'; } // SQL-Befehl zusammenstellen $sql = "SELECT b.BuchID, b.Titel, b.Erscheinungsjahr, b.Bild, b.Verlag, GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName) SEPARATOR ', ') AS 'Autor', GROUP_CONCAT(DISTINCT k.Name SEPARATOR ', ') AS 'Kategorie', b.ISBN, b.Klappentext AS 'Inhalt', sp.Bezeichnung AS 'Sprache', GROUP_CONCAT(DISTINCT st.Text SEPARATOR ', ') AS 'Stichwort', IF(b.Anzahl!=0, 'Verfügbar', CONCAT('Verfügbar ab: ', (SELECT DATE_FORMAT(DATE_ADD(ab.Enddatum, INTERVAL 1 DAY) ,'%d.%m.%Y') FROM `ausgeliehenes_buch` AS ab WHERE ab.BuchID = b.BuchID ORDER BY ab.Reserviert ASC, ab.Enddatum ASC LIMIT 1))) AS 'Verfügbarkeit' FROM `buch` AS b INNER JOIN `buch_verfasst_von_autor` AS bvva ON b.BuchID = bvva.BuchID INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr INNER JOIN `buch_hat_kategorie` AS bhk ON bhk.BuchID = b.BuchID INNER JOIN `kategorie` AS k ON k.KategorieID = bhk.KategorieID INNER JOIN `sprache` AS sp ON sp.SprachenID = b.SprachenID INNER JOIN `buch_hat_stichwort` AS bhs ON bhs.BuchID = b.BuchID INNER JOIN `stichwort` AS st ON st.StichwortID = bhs.StichwortID $yearQuery GROUP BY b.BuchID HAVING $dropdown1 LIKE '%$search1%' $andOr1 $dropdown2 LIKE '%$search2%' $andOr2 $dropdown3 LIKE '%$search3%' AND Sprache LIKE '$language' AND Verfügbarkeit LIKE '$available';"; } else { // Form wurde nicht erkannt } $servername = "localhost"; $username = "web_b-3"; $password = "een7Ao6s"; $dbname = "bibliothek_candle"; $connection = mysqli_connect($servername, $username, $password, $dbname); if (!$connection) { die("Verbindung fehlgeschlagen: " . mysqli_connect_error()); } $result = mysqli_query($connection, $sql); $counter = 0; if (mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)) { $bookID = $row['BuchID']; $bookCover = $row['Bild']; $bookTitle = $row['Titel']; $bookPublishingYear = $row['Erscheinungsjahr']; $bookPublisher = $row['Verlag']; $bookAuthor = $row['Autor']; $bookCategory = $row['Kategorie']; $bookAvailability = $row['Verfügbarkeit']; if ($counter != 0) { echo "<div class='divider'></div>"; } // TODO: OnClick auslagern. echo "<div id='book_container$bookID' class='book_container' onclick='open_bookDetails(this.id)'> <div class='bookCover_container'> <img class='bookCover' src='pictures/$bookCover' alt='Kein Bild vorhanden'> </div> <div class='bookDetails_container'> <h2 class='bookTitle'>$bookTitle</h2> <div class='bookDetails'> <p class='author'>Verfasser: $bookAuthor</p> <p class='publishing_year'> Erscheinungsjahr: $bookPublishingYear</p> <p class='publisher'> Verlag: $bookPublisher</p> <p class='category'> Kategorie: $bookCategory</p> </div> <div class='available_container'> <p id='available_$bookID' class='available'> $bookAvailability</p> <!--TODO: Auslagern--> <script type='text/javascript' language='JavaScript'> (function() { var currentElement = document. getElementById('available_$bookID'); var parentDiv = currentElement.parentElement; if (currentElement.innerHTML.trim() == 'Verfügbar') { parentDiv.style.backgroundColor = '#70AD47'; } else { parentDiv.style.backgroundColor = '#F34343'; } })(); </script> </div> </div> <div class='shoppingCart_container'> <div class='shoppingCart'></div> </div> </div>"; $counter++; } } else { echo "Keine Ergebnisse."; } if (!$result) { die("Ungültige SQL-Abfrage: " . mysqli_connect_error()); } mysqli_close($connection); ?> </div> </div> <!-------------------------------------------------------------------------> <!-- Auslagern (falls möglich) --> <script> function open_bookDetails(ID) { var data = new URLSearchParams(); data.append("bookID", ID); var url = "http://141.19.142.11/buch_details.php?" + data.toString(); location.href = url; } </script> <!-------------------------------------------------------------------------> <!--Link JS file--> <script src="burgerIcon.js"></script> <!--If it was small and got big, it calls the function only one time and doesn't do it all the time--> <script> var widthissue = false; window.addEventListener("resize", function(event) { if(window.innerWidth > 800 && widthissue) { widthissue = false unset() } else if(window.innerWidth < 800) widthissue = true; }) </script> <nav id="activeid" class="active"></nav> <footer id="footer" class="fuss" ></footer> </body> </html>