348 lines
15 KiB
PHP
348 lines
15 KiB
PHP
<!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">
|
|
<h1 class="kopf" >
|
|
<br><br>
|
|
Bibliothek
|
|
<a href="index.html" id="bildID">
|
|
<img id="CandleID" src="pictures/candle.png"
|
|
alt="Bild von einer Kerze" width="200" height="192"/></a>
|
|
<br><br>
|
|
Candle
|
|
</h1>
|
|
<div>
|
|
<a id="uberuns" href="uberuns.html">Über Uns</a>
|
|
<a id="buecher" href="buecher.php">Bücher</a>
|
|
<a id="meinebuecher" href="anmelden_meinebuecher.php">
|
|
Meine Bücher</a>
|
|
<?php
|
|
session_start();
|
|
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
|
|
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
|
|
?>
|
|
<form action="suchergebnisse.php">
|
|
<input type="hidden" name="searchType" value="simple">
|
|
<input name="searchFor" class="suchleiste" type="search"
|
|
placeholder="Suche...">
|
|
<button type="submit" id="buttonID" class="searchButton">
|
|
<i class="fa fa-search"></i>
|
|
</button>
|
|
</form>
|
|
<a id="erweitertesuche" href="erweitertesuche.html">
|
|
Erweiterte Suche</a>
|
|
<a href="anmelden.php" id="warenKorbID">
|
|
<img id="shoppingCard" src="pictures/einkaufswagen.png"
|
|
alt="Bild von einem Wagen" width="50" height="50"/>
|
|
</a>
|
|
</div>
|
|
</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 Event auslagern
|
|
echo "<div id='book_container$bookID' class='book_container'
|
|
onclick='open_bookDetails(this.id)'>
|
|
<div class='bookCover_container'>
|
|
<img class='bookCover'
|
|
src='book_covers/$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>
|
|
<!--TODO: OnClick Event auslagern-->
|
|
<div class='shoppingCart_container'
|
|
id='shoppingCart$bookID'
|
|
onclick='addBookToCart(this.id)'>
|
|
<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>
|
|
|
|
<!------------------------------------------------------------------------->
|
|
|
|
<!-- TODO: 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;
|
|
}
|
|
|
|
function addBookToCart(ID) {
|
|
// OnClick Event für open_bookDetails stoppen
|
|
if (!e) var e = window.event;
|
|
e.cancelBubble = true;
|
|
if (e.stopPropagation) e.stopPropagation();
|
|
|
|
// ID abtrennen
|
|
ID = ID.replace('shoppingCart', '');
|
|
|
|
var request = new XMLHttpRequest();
|
|
request.open('POST',
|
|
'http://141.19.142.11/warenkorb_funktionen.php', true);
|
|
// TODO: Handler erstellen
|
|
request.onload = function() {
|
|
console.log(this.responseText);
|
|
}
|
|
request.setRequestHeader('Content-type',
|
|
'application/x-www-form-urlencoded');
|
|
request.send(`function=addBookToCart&id=${ID}`);
|
|
}
|
|
</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>
|