This commit is contained in:
s4msk0
2025-10-13 17:11:21 +02:00
parent ac2c4b5750
commit dcb9c5fc1b
5 changed files with 144 additions and 0 deletions

9
ma_bibli/Dockerfile Normal file
View File

@@ -0,0 +1,9 @@
FROM php:8.2-apache
LABEL authors="Samy"
COPY .. /var/www/html
WORKDIR /var/www/html
RUN docker-php-ext-install pdo pdo_mysql
EXPOSE 80

View File

@@ -0,0 +1,59 @@
CREATE DATABASE IF NOT EXISTS biblioteque CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;
USE biblioteque ;
CREATE TABLE IF NOT EXISTS auteurs (
auteur_id INT AUTO_INCREMENT,
nom VARCHAR(100) NOT NULL,
prenom VARCHAR(100),
PRIMARY KEY (auteur_id))
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS Livres (
livre_id INT AUTO_INCREMENT,
titre VARCHAR(255) NOT NULL,
annee_publication INT,
auteur_id INT,
resume TEXT,
PRIMARY KEY (livre_id),
FOREIGN KEY (auteur_id)
REFERENCES auteurs (auteur_id)
ON DELETE SET NULL)
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SET NAMES utf8mb4;
SET CHARACTER SET utf8mb4;
INSERT INTO auteurs (nom, prenom) VALUES
('Hugo', 'Victor'), -- ID supposé: 1
('Camus', 'Albert'), -- ID supposé: 2
('Orwell', 'George'), -- ID supposé: 3
('Zola', 'Émile'), -- ID supposé: 4
('Flaubert', 'Gustave'), -- ID supposé: 5
('Verne', 'Jules'), -- ID supposé: 6
('Dumas', 'Alexandre'), -- ID supposé: 7
('King', 'Stephen'), -- ID supposé: 8
('Kafka', 'Franz'), -- ID supposé: 9
('Balzac', 'Honoré de'); -- ID supposé: 10
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('Les Misérables', 1862, 1, 'Une fresque monumentale sur la justice, la misère et la rédemption, centrée sur Jean Valjean, un ancien forçat traqué par le policier Javert. Hugo dépeint la société française du XIXᵉ siècle et la lutte entre le bien et le mal.'); -- ID supposé: 1
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('LÉtranger', 1942, 2, 'Meursault, un homme indifférent au monde, commet un meurtre absurde et fait face à la justice. À travers lui, Camus explore labsurdité de lexistence et le refus des conventions sociales.'); -- ID supposé: 2
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('1984', 1949, 3, 'Dans un régime totalitaire où la pensée est contrôlée et lhistoire falsifiée, Winston Smith tente de se rebeller. Ce roman visionnaire dénonce la surveillance, la manipulation et la perte de liberté individuelle.'); -- ID supposé: 3
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('Germinal', 1885, 4, 'Étienne Lantier, jeune ouvrier, découvre la misère et la révolte dans une mine du Nord. Zola y montre avec réalisme la dureté du travail, la solidarité et la lutte des classes, emblèmes du naturalisme.'); -- ID supposé: 4
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('Madame Bovary', 1857, 5, 'Emma Bovary, épouse dun médecin de province, rêve damour et de luxe. Son ennui la pousse à ladultère et à la ruine. Flaubert y dénonce le romantisme naïf et les illusions de la bourgeoisie.'); -- ID supposé: 5
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('Vingt mille lieues sous les mers', 1870, 6, 'Le capitaine Nemo parcourt les océans à bord du Nautilus. Aventure scientifique et poétique, le roman explore la beauté et les mystères du monde marin, tout en questionnant la science et la solitude.'); -- ID supposé: 6
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('Le Comte de Monte-Cristo', 1846, 7, 'Edmond Dantès, injustement emprisonné, sévade et revient sous une nouvelle identité pour se venger de ses traîtres. Un récit daventure, de vengeance et de justice intemporel.'); -- ID supposé: 7
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('Ça', 1986, 8, 'Dans la petite ville de Derry, un groupe denfants affronte une entité maléfique prenant la forme dun clown. Des années plus tard, ils reviennent pour finir le combat. Un roman dhorreur sur la peur, lamitié et le passage à lâge adulte.'); -- ID supposé: 8
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('Le Procès', 1925, 9, 'Joseph K. est arrêté sans connaître son crime. Il affronte une justice incompréhensible et absurde. Kafka y dépeint loppression bureaucratique et la condition humaine perdue face à un système déshumanisé.'); -- ID supposé: 9
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES ('Le Père Goriot', 1835, 10, 'Un vieil homme ruiné par lamour pour ses filles et un jeune ambitieux prêt à tout pour réussir. À travers cette pension sordide, Balzac dévoile la cruauté sociale et la soif dascension dans le Paris du XIXᵉ siècle.'); -- ID supposé: 10

57
ma_bibli/index.php Normal file
View File

@@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Ma super bibliothèque</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php include("sql/pdo.php"); ?>
<header class="main-content">
<H1>Bibliothèque</H1>
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/">Accueil</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/">Ajouter un livre</a>
</li>
</ul>
</header>
<main class="main-content">
<?php include("view/view_books.php"); ?>
</main>
<footer class="fixed-bottom d-flex flex-wrap justify-content-between align-items-center py-3 my-4 border-top p-4">
<div>
<i class="bi bi-c-circle"></i> 2025 - LM I-Manager
</div>
<div>
Version : 1.0.0
</div>
<div class="d-flex align-items-center d-flex-row">
Connexion BDD :
<?php
if ($GLOBALS['BddIsConnected']) {
echo "<p class='m-1' style='color:green;'>✅</p>";
} else {
echo "<p class='m-1' style='color:red;'>❌</p>";
}
?>
</div>
</footer>
</body>
</html>

18
ma_bibli/php/pdo.php Normal file
View File

@@ -0,0 +1,18 @@
<?php
$host = 'BIBLI_mysql'; // nom du docker --name ma-base-sql
$db = 'bibliotheque';
$user = 'root';
$pass = 'passwordRoot'; // TODO : password à variabiliser
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
try {
$pdo = new PDO($dsn, $user, $pass);
$GLOBALS['BddIsConnected'] = true;
} catch (\PDOException $e) {
$GLOBALS['BddIsConnected'] = false;
echo "<script>console.log('Error PDO : " . $e->getMessage() . "' );</script>";
}