Noch nicht fertig.

master
Jasmin Weise 2023-06-01 14:12:32 +02:00
parent 8c67f39f85
commit fb5332b24c
6 changed files with 409 additions and 2 deletions

View File

@ -0,0 +1,137 @@
<!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" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erweiterte Suche</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">
<span id="titelerweitertesuche" > Erweiterte Suche </span> <br><br>
<form action="erweiterte_suche.php" method="get">
<select id="dropdown1" class="buchtitel">
<option selected="selected">Titel</option>
<option>Autor</option>
<option>Verlag</option>
<option>Stichwort</option>
</select>
<input type="search" class="buchtiteloptions">
<select id="and_or" class="und-wort1">
<option>und</option>
<option>oder</option>
</select>
<select id="dropdown2" class="autor">
<option>Titel</option>
<option selected="selected">Autor</option>
<option>Verlag</option>
<option>Stichwort</option>
</select>
<input type="search" class="autoroptions">
<select id="and_or" class="und-wort2">
<option>und</option>
<option>oder</option>
</select>
<select id="dropdown3" class="stichwort">
<option>Titel</option>
<option>Autor</option>
<option>Verlag</option>
<option selected="selected">Stichwort</option>
</select>
<input type="search" 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" class="spracheingabe">
<option>Alle Sprachen</option>
<option>Deutsch</option>
<option>Englisch</option>
<option>Französisch</option>
<option>Arabisch</option>
</select>
<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>
<input type="submit" id="suchen" value="Suchen">
<a id="suchfelderleeren" href="">Suchfelder leeren</a>
</form>
</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>

View File

@ -0,0 +1,3 @@
<?php
echo "Hallo!";
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -417,16 +417,17 @@ 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;
} }

96
suchergebnisse.css 100644
View File

@ -0,0 +1,96 @@
/*TODO: Hintergrundfarben entfernen*/
.hauptcontainer {
/*Einzelne Elemente untereinander anzeigen.*/
flex-direction: column;
height: 71%;
}
#searchResult_heading {
background-color: #70AD47;
margin-top: 30px;
margin-left: 30px;
margin-bottom: 25px;
margin-right: 50px;
}
/*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;
}
.bookCover_container {
background-color: blue;
display: flex;
/*Verbietet dem Container, seine Standardgröße (px) zu ändern.*/
flex: 0 0 125px;
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;
}
.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;
}

170
suchergebnisse.php 100644
View File

@ -0,0 +1,170 @@
<!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">
<form action="su">
</form>
<h1 id="searchResult_heading">Suchergebnisse</h1>
<div id="searchResult_container">
<?php
$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());
}
$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',
IF(b.Anzahl!=0, 'Verfügbar', 'Verfügbar ab: ') 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
GROUP BY b.BuchID";
$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>";
}
echo "<div class='book_container'>
<div class='bookCover_container'>
<img class=bookCover' src='$bookCover' alt='fehler'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<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 class='available_container'>
<p id='$bookID' class='available'>$bookAvailability</p>
<!--TODO: Auslagern-->
<script type='text/javascript' language='JavaScript'>
(function() {
var currentElement = document.getElementById('$bookID');
var parentDiv = currentElement.parentElement;
if (currentElement.innerHTML == '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>
<!------------------------------------------------------------------------->
<!--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>