Merge branch 'master' of https://gitty.informatik.hs-mannheim.de/2123174/Candle
|
@ -0,0 +1,96 @@
|
||||||
|
/*TODO: Hintergrundfarben entfernen*/
|
||||||
|
|
||||||
|
.hauptcontainer {
|
||||||
|
/*Einzelne Elemente untereinander anzeigen.*/
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Container wird mit Daten aus der Datenbank gefüllt.*/
|
||||||
|
#bookInfo_container {
|
||||||
|
padding-left: 45px;
|
||||||
|
padding-right: 50px;
|
||||||
|
padding-bottom: 50px;
|
||||||
|
padding-top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book_container {
|
||||||
|
/*background-color: blueviolet;*/
|
||||||
|
display: flex;
|
||||||
|
/*Einzelne Elemente nebeneinander anzeigen.*/
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookCover_container {
|
||||||
|
/*background-color: blue;*/
|
||||||
|
display: flex;
|
||||||
|
/*Verbietet dem Container, seine Standardgröße (px) zu ändern.*/
|
||||||
|
flex: 0 0 150px;
|
||||||
|
align-items: center;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookCover {
|
||||||
|
/*Bild passt sich seinem Container an.*/
|
||||||
|
max-width:100%;
|
||||||
|
max-height:100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookDetails_container {
|
||||||
|
/* background-color: aquamarine; */
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding-left: 25px;
|
||||||
|
padding-right: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookTitle {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookDetails {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.available_container {
|
||||||
|
width: fit-content;
|
||||||
|
/*Hintergrundfarbe wird an Inhalt angepasst.*/
|
||||||
|
background-color: #70AD47;
|
||||||
|
/*background-color: #F34343;*/
|
||||||
|
/*Element immer an der unteren Seite des Containers platzieren.*/
|
||||||
|
margin-top: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.available {
|
||||||
|
color: white;
|
||||||
|
margin: 10px 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shoppingCart_container {
|
||||||
|
/* background-color: chartreuse; */
|
||||||
|
margin-left: auto;
|
||||||
|
margin-top: auto;
|
||||||
|
flex: 0 0 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shoppingCart {
|
||||||
|
background-image: url('pictures/shopping_cart.png');
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shoppingCart:hover {
|
||||||
|
background-image: url('pictures/shopping_cart_hover.png');
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content_container, .bookMoreDetails_container {
|
||||||
|
margin-top: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookContent_heading, .bookDetails_heading {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
|
@ -0,0 +1,209 @@
|
||||||
|
<!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="buch_details.css"/>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||||
|
<title>Candle Bibliothek | Details</title>
|
||||||
|
<link rel="icon" href="pictures/candle.png">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<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.html">Bücher</a>
|
||||||
|
<a id="meinebuecher" href="anmelden_meinebuecher.php">Meine Bücher</a>
|
||||||
|
<a id="abmelden" href="abmelden.php">Abmelden</a>
|
||||||
|
<form action="">
|
||||||
|
<input 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">
|
||||||
|
<?php
|
||||||
|
/* Übergebene ID des angeklickten Container speichern */
|
||||||
|
$containerID = $_GET['bookID'];
|
||||||
|
|
||||||
|
/* Buch ID abtrennen */
|
||||||
|
$ID = str_replace('book_container', '', $containerID);
|
||||||
|
|
||||||
|
/* 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: ', 'Test!'))
|
||||||
|
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
|
||||||
|
WHERE b.BuchID = $ID
|
||||||
|
GROUP BY b.BuchID;";
|
||||||
|
|
||||||
|
$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);
|
||||||
|
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'];
|
||||||
|
$bookContent = $row['Inhalt'];
|
||||||
|
$bookISBN = $row['ISBN'];
|
||||||
|
$bookLanguage = $row['Sprache'];
|
||||||
|
$bookKeywords = $row['Stichwort'];
|
||||||
|
|
||||||
|
/* TODO: OnClick auslagern. */
|
||||||
|
echo
|
||||||
|
"<div id='bookInfo_container'>
|
||||||
|
<div class='book_container'>
|
||||||
|
<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';
|
||||||
|
}
|
||||||
|
var newTitle =
|
||||||
|
'Candle Bibliothek | $bookTitle';
|
||||||
|
document.title = newTitle;
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='shoppingCart_container'>
|
||||||
|
<div class='shoppingCart'></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='content_container'>
|
||||||
|
<h2 class='bookContent_heading'>Inhalt</h2>
|
||||||
|
<p class='bookContent'>$bookContent</p>
|
||||||
|
</div>
|
||||||
|
<div class='bookMoreDetails_container'>
|
||||||
|
<h2 class='bookDetails_heading'>Details</h2>
|
||||||
|
<p class='bookISBN'>ISBN: $bookISBN</p>
|
||||||
|
<p class='bookLanguage'>Sprache: $bookLanguage</p>
|
||||||
|
<p class='bookKeywords'>Stichwörter:
|
||||||
|
$bookKeywords</p>
|
||||||
|
</div>
|
||||||
|
</div>";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo "Keine Infos vorhanden.";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$result) {
|
||||||
|
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
|
||||||
|
}
|
||||||
|
|
||||||
|
mysqli_close($connection);
|
||||||
|
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
<!--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">
|
||||||
|
<div class="navLinks">
|
||||||
|
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
|
||||||
|
<label for="nav-toggle" class="icon-burger" >
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<footer class="fuss" >
|
||||||
|
<div>
|
||||||
|
<a id="impressum" href="impressum.html">Impressum</a>
|
||||||
|
<a id="kontakt" href="kontakt.html">Kontakt</a>
|
||||||
|
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -32,69 +32,65 @@
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
<div class="hauptcontainer">
|
||||||
|
<span id="titelerweitertesuche" > Erweiterte Suche </span> <br><br>
|
||||||
|
<form action="suchergebnisse_erweiterte_suche.php" method="get">
|
||||||
|
<select id="dropdown1" name="dropdown1" class="buchtitel">
|
||||||
|
<option selected="selected">Titel</option>
|
||||||
|
<option>Autor</option>
|
||||||
|
<option>Verlag</option>
|
||||||
|
<option>Stichwort</option>
|
||||||
|
<option>Kategorie</option>
|
||||||
|
</select>
|
||||||
|
<input type="search" name="search1" class="buchtiteloptions">
|
||||||
|
|
||||||
<div class="hauptcontainer">
|
<select id="and_or" name="and_or1" class="und-wort1">
|
||||||
<span id="titelerweitertesuche" > Erweiterte Suche </span> <br><br>
|
<option>und</option>
|
||||||
<form action="">
|
<option>oder</option>
|
||||||
<input type="search" value="Titel" class="buchtitel" list="Titel">
|
</select>
|
||||||
<datalist id="Titel">
|
<select id="dropdown2" name="dropdown2" class="autor">
|
||||||
<option value="Titel"></option>
|
<option>Titel</option>
|
||||||
</datalist>
|
<option selected="selected">Autor</option>
|
||||||
|
<option>Verlag</option>
|
||||||
|
<option>Stichwort</option>
|
||||||
|
<option>Kategorie</option>
|
||||||
|
</select>
|
||||||
|
<input type="search" name="search2" class="autoroptions">
|
||||||
|
|
||||||
<input type="text" class="buchtiteloptions" list="buchtiteloptionen">
|
<select id="and_or" name="and_or2" class="und-wort2">
|
||||||
|
<option>und</option>
|
||||||
|
<option>oder</option>
|
||||||
|
</select>
|
||||||
|
<select id="dropdown3" name="dropdown3" class="stichwort">
|
||||||
|
<option>Titel</option>
|
||||||
|
<option>Autor</option>
|
||||||
|
<option>Verlag</option>
|
||||||
|
<option selected="selected">Stichwort</option>
|
||||||
|
<option>Kategorie</option>
|
||||||
|
</select>
|
||||||
|
<input type="search" name="search3" class="stichwörteroptions">
|
||||||
|
|
||||||
|
<span id="weiteresuchkriterien" style> Weitere Suchkriterien</span><br><br></p>
|
||||||
|
<span class="jahrvon">Jahr von </span>
|
||||||
|
<input type="date" class="anfangsdatum" name="Buchdatum1">
|
||||||
|
<span class="bis">bis </span>
|
||||||
|
<input type="date" class="endsdatum" name="Buchdatum2">
|
||||||
|
<span class="sprache">Sprache </span>
|
||||||
|
<select id="language" name="language" class="spracheingabe">
|
||||||
|
<option>Alle Sprachen</option>
|
||||||
|
<option>Deutsch</option>
|
||||||
|
<option>Englisch</option>
|
||||||
|
<option>Französisch</option>
|
||||||
|
<option>Arabisch</option>
|
||||||
|
</select>
|
||||||
|
<span class="verfügbarkeit">Verfügbarkeit</span>
|
||||||
|
<input type="checkbox" class="checkbox" name="status" value="verfügbareBücher">
|
||||||
|
<span class="kommentar">verfügbare Bücher</span>
|
||||||
|
|
||||||
<input type="search" value="und" class="und-wort1" list="Und">
|
<input type="submit" id="suchen" value="Suchen">
|
||||||
<datalist id="Und">
|
<a id="suchfelderleeren" href="">Suchfelder leeren</a>
|
||||||
<option value="und"></option>
|
</form>
|
||||||
<option value="oder"></option>
|
</div>
|
||||||
</datalist>
|
|
||||||
|
|
||||||
<input type="search" value="Autor" class="autor" list="Autor">
|
|
||||||
<datalist id="Autor">
|
|
||||||
<option value="Autor"></option>
|
|
||||||
</datalist>
|
|
||||||
|
|
||||||
<input type="text" class="autoroptions" list="autoroptionen">
|
|
||||||
|
|
||||||
|
|
||||||
<input type="search" value="und" class="und-wort2" list="Und" >
|
|
||||||
<datalist id="Und">
|
|
||||||
<option value="und"></option>
|
|
||||||
<option value="oder"></option>
|
|
||||||
</datalist>
|
|
||||||
|
|
||||||
<input type="search" value="Stichwort" class="stichwort" list="Stichwort">
|
|
||||||
<datalist id="Stichwort">
|
|
||||||
<option value="Stichwort"></option>
|
|
||||||
</datalist>
|
|
||||||
|
|
||||||
<input type="text" class="stichwörteroptions" list="stichwörteroptionen">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<span id="weiteresuchkriterien" style> Weitere Suchkriterien</span><br><br></p>
|
|
||||||
<span class="jahrvon">Jahr von </span>
|
|
||||||
<input type="date" class="anfangsdatum" name="Buchdatum1">
|
|
||||||
<span class="bis">bis </span>
|
|
||||||
<input type="date" class="endsdatum" name="Buchdatum2">
|
|
||||||
<span class="sprache">Sprache </span>
|
|
||||||
<input type="search" class="spracheingabe" list="sprachoptionen">
|
|
||||||
<datalist id="sprachoptionen">
|
|
||||||
<option value="Deutsch"></option>
|
|
||||||
<option value="Englisch"></option>
|
|
||||||
<option value="Arabisch"></option>
|
|
||||||
<option value="Französisch"></option>
|
|
||||||
</datalist>
|
|
||||||
<span class="verfügbarkeit">Verfügbarkeit</span>
|
|
||||||
<input type="checkbox" class="checkbox" name="status" value="verfügbareBücher">
|
|
||||||
<span class="kommentar">verfügbare Bücher</span>
|
|
||||||
|
|
||||||
<a id="suchen" href="">suchen</a>
|
|
||||||
<a id="suchfelderleeren" href="">Suchfelder leeren</a>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 294 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 674 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 75 KiB |
|
@ -253,7 +253,7 @@ body{
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
display:flex;
|
display:flex;
|
||||||
height: 62%;
|
height: 71%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
top:200px;
|
top:200px;
|
||||||
}
|
}
|
||||||
|
@ -417,16 +417,18 @@ body{
|
||||||
left: 20px;
|
left: 20px;
|
||||||
top: 380px;
|
top: 380px;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
height: 35px;
|
font-size: 16px;
|
||||||
background-color:#664220 ;
|
background-color:#664220 ;
|
||||||
color:rgb(255, 255, 255);
|
color:rgb(255, 255, 255);
|
||||||
padding-right:10px;
|
padding-right:10px;
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
padding-bottom: 0px;
|
padding-bottom: 15px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
/*TODO: Hintergrundfarben entfernen*/
|
||||||
|
|
||||||
|
|
||||||
|
.hauptcontainer {
|
||||||
|
/*Einzelne Elemente untereinander anzeigen.*/
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
#searchResult_heading {
|
||||||
|
/* background-color: #70AD47; */
|
||||||
|
margin-top: 30px;
|
||||||
|
margin-left: 30px;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
margin-right: 50px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Container wird mit Daten aus der Datenbank gefüllt.*/
|
||||||
|
#searchResult_container {
|
||||||
|
padding-left: 45px;
|
||||||
|
padding-right: 50px;
|
||||||
|
padding-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.book_container {
|
||||||
|
/* background-color: blueviolet; */
|
||||||
|
display: flex;
|
||||||
|
/*Einzelne Elemente nebeneinander anzeigen.*/
|
||||||
|
flex-direction: row;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookCover_container {
|
||||||
|
/*background-color: blue;*/
|
||||||
|
display: flex;
|
||||||
|
/*Verbietet dem Container, seine Standardgröße (px) zu ändern.*/
|
||||||
|
flex: 0 0 150px;
|
||||||
|
align-items: center;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookCover {
|
||||||
|
/*Bild passt sich seinem Container an.*/
|
||||||
|
max-width:100%;
|
||||||
|
max-height:100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookDetails_container {
|
||||||
|
/* background-color: aquamarine; */
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding-left: 15px;
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookTitle {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bookDetails {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.available_container {
|
||||||
|
width: fit-content;
|
||||||
|
/*Hintergrundfarbe wird an Inhalt angepasst.*/
|
||||||
|
background-color: #70AD47;
|
||||||
|
/*background-color: #F34343;*/
|
||||||
|
/*Element immer an der unteren Seite des Containers platzieren.*/
|
||||||
|
margin-top: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.available {
|
||||||
|
color: white;
|
||||||
|
margin: 10px 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shoppingCart_container {
|
||||||
|
/* background-color: chartreuse; */
|
||||||
|
margin-left: auto;
|
||||||
|
margin-top: auto;
|
||||||
|
flex: 0 0 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shoppingCart {
|
||||||
|
background-image: url('pictures/shopping_cart.png');
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shoppingCart:hover {
|
||||||
|
background-image: url('pictures/shopping_cart_hover.png');
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
margin-top: 15px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
background-color: #987554;
|
||||||
|
width: 100%;
|
||||||
|
height: 1px;
|
||||||
|
}
|
|
@ -0,0 +1,265 @@
|
||||||
|
<!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">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<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.html">Bücher</a>
|
||||||
|
<a id="meinebuecher" href="anmelden_meinebuecher.php">Meine Bücher</a>
|
||||||
|
<a id="abmelden" href="abmelden.php">Abmelden</a>
|
||||||
|
<form action="">
|
||||||
|
<input 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
|
||||||
|
|
||||||
|
/* Eingegebene Daten in Variablen speichern */
|
||||||
|
$dropdown1 = $_GET['dropdown1'];
|
||||||
|
$search1 = $_GET['search1'];
|
||||||
|
|
||||||
|
$andOr1 = $_GET['and_or1'];
|
||||||
|
if ($andOr1 == 'und') {
|
||||||
|
$andOr1 = 'AND';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$andOr1 = 'OR';
|
||||||
|
}
|
||||||
|
$dropdown2 = $_GET['dropdown2'];
|
||||||
|
$search2 = $_GET['search2'];
|
||||||
|
|
||||||
|
$andOr2 = $_GET['and_or2'];
|
||||||
|
if ($andOr2 == 'und') {
|
||||||
|
$andOr2 = 'AND';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$andOr2 = 'OR';
|
||||||
|
}
|
||||||
|
$dropdown3 = $_GET['dropdown3'];
|
||||||
|
$search3 = $_GET['search3'];
|
||||||
|
|
||||||
|
$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: ', 'Test!'))
|
||||||
|
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';";
|
||||||
|
|
||||||
|
$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>
|
||||||
|
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
<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">
|
||||||
|
<div class="navLinks">
|
||||||
|
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
|
||||||
|
<label for="nav-toggle" class="icon-burger" >
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<footer class="fuss" >
|
||||||
|
<div>
|
||||||
|
<a id="impressum" href="impressum.html">Impressum</a>
|
||||||
|
<a id="kontakt" href="kontakt.html">Kontakt</a>
|
||||||
|
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|