2023-06-14 11:44:33 +02:00
<! 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 | Meine Bücher </ 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
2023-06-14 17:23:07 +02:00
< a href = " index.php " id = " bildID " >
2023-06-14 11:44:33 +02:00
< 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 >
2023-06-14 20:31:11 +02:00
< a href = " warenkorb.php " id = " warenKorbID " >
2023-06-14 11:44:33 +02:00
< img id = " shoppingCard " src = " pictures/einkaufswagen.png "
alt = " Bild von einem Wagen " width = " 50 " height = " 50 " />
</ a >
</ div >
</ header >
2023-05-26 16:39:10 +02:00
< ? php
2023-06-05 16:49:14 +02:00
session_start ();
2023-06-14 19:28:38 +02:00
$db_link = mysqli_connect ( 'localhost' , 'web_b-3' , 'een7Ao6s' , 'bibliothek_candle' , '3306' );
2023-06-05 16:49:14 +02:00
2023-06-14 11:44:33 +02:00
echo '
2023-06-11 12:00:38 +02:00
< div class = " hauptcontainer " >
< h1 id = " searchResult_heading " > Meine Bücher </ h1 >
< div id = " searchResult_container " > ' ;
2023-06-14 16:18:00 +02:00
$sql = $db_link -> prepare (
" SELECT ab.AusleihID, ab.BuchID, b.Titel, b.Bild, ab.Verlängerbar, DATE_FORMAT(ab.Anfangsdatum, '%d.%m.%Y') as Anfangsdatum, DATE_FORMAT(ab.Enddatum, '%d.%m.%Y') as Enddatum,
2023-06-11 12:00:38 +02:00
GROUP_CONCAT ( DISTINCT CONCAT ( a . VorName , ' ' , a . NachName )
SEPARATOR ', ' ) AS 'Autor' ,
2023-06-14 16:18:00 +02:00
IF (
( SELECT ausgeliehenes_buch . Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch . AusleihID = ab . AusleihID ) = Curdate (), 'Sofort Abholbereit' ,
(
IF (
( SELECT ausgeliehenes_buch . Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch . AusleihID = ab . AusleihID ) > Curdate (),
CONCAT (
'Abholbereit am: ' , (
SELECT DATE_FORMAT (
ausgeliehenes_buch . Anfangsdatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch . AusleihID = ab . AusleihID
)
)
, CONCAT (
'Rückgabe am: ' , (
SELECT DATE_FORMAT (
ausgeliehenes_buch . Enddatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch . AusleihID = ab . AusleihID
)
))
)
)
AS 'Verfügbarkeit'
FROM ausgeliehenes_buch AS ab
INNER JOIN buch as b
ON ab . BuchID = b . BuchID
2023-06-11 12:00:38 +02:00
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b . BuchID = bvva . BuchID
2023-06-14 16:18:00 +02:00
INNER JOIN `autor` AS a ON bvva . AutorNr = a . AutorNr
WHERE ab . BenutzerID = ?
GROUP BY ab . AusleihID ; " );
$sql -> bind_param ( " i " , $BenutzerID );
2023-06-14 21:29:08 +02:00
$BenutzerID = $_SESSION [ 'userID' ];
2023-06-14 16:18:00 +02:00
$sql -> execute ();
$result = $sql -> get_result ();
$connection = $db_link ;
2023-06-11 12:00:38 +02:00
if ( ! $connection ) {
die ( " Verbindung fehlgeschlagen: " . mysqli_connect_error ());
}
$counter = 0 ;
if ( mysqli_num_rows ( $result ) > 0 ) {
while ( $row = mysqli_fetch_assoc ( $result )) {
$bookID = $row [ 'BuchID' ];
2023-06-14 16:18:00 +02:00
$ausleihID = $row [ 'AusleihID' ];
2023-06-11 12:00:38 +02:00
$bookCover = $row [ 'Bild' ];
$bookTitle = $row [ 'Titel' ];
$bookAuthor = $row [ 'Autor' ];
$bookAvailability = $row [ 'Verfügbarkeit' ];
2023-06-14 16:18:00 +02:00
$bookExtendable = $row [ 'Verlängerbar' ];
$bookStartdate = $row [ 'Anfangsdatum' ];
$bookEnddate = $row [ 'Enddatum' ];
$bookStartdatePlusSeven = $bookStartdate + 7 ;
2023-06-11 12:00:38 +02:00
if ( $counter != 0 ) {
echo " <div class='divider'></div> " ;
}
// TODO: OnClick auslagern.
2023-06-14 16:18:00 +02:00
echo " <div id='book_container $bookID + $ausleihID ' class='book_container'
2023-06-11 12:00:38 +02:00
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' > von $bookAuthor </ p >
</ div >
< div class = 'available_container' >
2023-06-14 16:18:00 +02:00
< p id = 'available_$ausleihID' class = 'available' >
$bookAvailability </ p >
</ div >
< div >
< p id = 'bestellungsInfo$ausleihID' ></ p >
</ div >
2023-06-14 17:23:07 +02:00
</ div >
2023-06-14 19:28:38 +02:00
< div class = 'placeholder_container' id = 'placeholder_container$ausleihID' >
2023-06-14 18:18:54 +02:00
< div class = 'placeholder' id = 'placeholder$ausleihID' ></ div >
2023-06-14 17:23:07 +02:00
</ div >
< script type = 'text/javascript'
2023-06-11 12:00:38 +02:00
language = 'JavaScript' >
( function () {
var currentElement = document .
2023-06-14 16:18:00 +02:00
getElementById ( 'available_$ausleihID' );
var parentDiv = currentElement . parentElement ;
2023-06-14 17:23:07 +02:00
// Sofort Abholbereit
2023-06-14 16:18:00 +02:00
if ( currentElement . innerHTML . trim () === 'Sofort Abholbereit' ) {
2023-06-11 12:00:38 +02:00
parentDiv . style . backgroundColor
= '#70AD47' ;
2023-06-14 16:18:00 +02:00
document . getElementById ( 'bestellungsInfo$ausleihID' ) . innerHTML = 'Diese Reservierung verfällt, wenn das Buch nicht bis zum $bookStartdatePlusSeven abgeholt wurde.' ;
2023-06-14 18:18:54 +02:00
document . getElementById ( 'placeholder$ausleihID' ) . classList . add ( 'bin' );
2023-06-14 19:28:38 +02:00
document . getElementById ( 'placeholder_container$ausleihID' ) . addEventListener ( 'click' , function (){
if ( ! e ) var e = window . event ;
e . cancelBubble = true ;
if ( e . stopPropagation ) e . stopPropagation ();
ID = this . id ;
var data = new URLSearchParams ();
data . append ( 'ausleihID' , ID );
var url = 'http://141.19.142.11/loeschen_meine_buecher.php?' + data . toString ();
location . href = url ;
});
2023-06-11 12:00:38 +02:00
}
2023-06-14 17:23:07 +02:00
// Ausgeliehen und Verlängerbar
2023-06-14 16:18:00 +02:00
else if ( currentElement . innerHTML . trim () . includes ( 'Rückgabe' ) && $bookExtendable === 1 ){
parentDiv . style . backgroundColor
= '#70AD47' ;
2023-06-14 18:18:54 +02:00
document . getElementById ( 'placeholder$ausleihID' ) . classList . add ( 'extend' );
2023-06-14 21:06:12 +02:00
document . getElementById ( 'placeholder_container$ausleihID' ) . addEventListener ( 'click' , function (){
if ( ! e ) var e = window . event ;
e . cancelBubble = true ;
if ( e . stopPropagation ) e . stopPropagation ();
ID = this . id ;
var data = new URLSearchParams ();
data . append ( 'ausleihID' , ID );
var url = 'http://141.19.142.11/verlaengerung.php?' + data . toString ();
location . href = url ;
});
2023-06-14 17:23:07 +02:00
}
// Ausgeliehen und nicht Verlängerbar
else if ( currentElement . innerHTML . trim () . includes ( 'Rückgabe' ) && $bookExtendable === 0 ){
2023-06-11 12:00:38 +02:00
parentDiv . style . backgroundColor
= '#F34343' ;
2023-06-14 17:23:07 +02:00
} else
// Noch nicht Ausgeliehen
{
2023-06-14 16:18:00 +02:00
parentDiv . style . backgroundColor
= '#F34343' ;
document . getElementById ( 'bestellungsInfo$ausleihID' ) . innerHTML = 'Dieses Buch ist für sie Reserviert.' ;
2023-06-14 18:18:54 +02:00
document . getElementById ( 'placeholder$ausleihID' ) . classList . add ( 'bin' );
2023-06-14 20:01:56 +02:00
document . getElementById ( 'placeholder_container$ausleihID' ) . addEventListener ( 'click' , function (){
if ( ! e ) var e = window . event ;
e . cancelBubble = true ;
if ( e . stopPropagation ) e . stopPropagation ();
ID = this . id ;
var data = new URLSearchParams ();
data . append ( 'ausleihID' , ID );
var url = 'http://141.19.142.11/loeschen_meine_buecher.php?' + data . toString ();
location . href = url ;
});
2023-06-11 12:00:38 +02:00
}
})();
</ script >
</ div > " ;
$counter ++ ;
}
} else {
echo " Keine Ergebnisse. " ;
2023-06-05 15:13:50 +02:00
}
2023-06-11 12:00:38 +02:00
if ( ! $result ) {
die ( " Ungültige SQL-Abfrage: " . mysqli_connect_error ());
}
mysqli_close ( $connection );
2023-05-26 16:39:10 +02:00
?>
2023-06-11 12:00:38 +02:00
</ div >
</ div >
< script >
function open_bookDetails ( ID ) {
var data = new URLSearchParams ();
2023-06-14 16:18:00 +02:00
ID = ID . substr ( 0 , ID . lastIndexOf ( '+' ));
2023-06-11 12:00:38 +02:00
data . append ( " bookID " , ID );
var url = " http://141.19.142.11/buch_details.php? " +
data . toString ();
location . href = url ;
}
2023-06-14 19:28:38 +02:00
function bin ( ID ){
// OnClick Event für open_bookDetails stoppen
if ( ! e ) var e = window . event ;
e . cancelBubble = true ;
if ( e . stopPropagation ) e . stopPropagation ();
alert ( ID )
}
2023-06-11 12:00:38 +02:00
</ script >
<!-- Link JS file -->
< script src = " burgerIcon.js " ></ script >
2023-06-14 12:04:25 +02:00
< script src = " resize.js " ></ script >
2023-06-11 12:00:38 +02:00
<!-- Burger -->
2023-06-12 11:23:37 +02:00
< nav id = " activeid " class = " active " ></ nav >
2023-06-11 12:00:38 +02:00
< footer id = " footer " class = " fuss " ></ footer >
</ body >
</ html >