Obisidian vault auto-backup: 27-01-2026 11:43:39 on . 12 files edited

This commit is contained in:
Félix MARQUET
2026-01-27 11:43:39 +01:00
parent a56714c757
commit 5327305736
12 changed files with 143 additions and 15 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -0,0 +1,12 @@
version: '3.8'
services:
db:
image: postgres:17
environment:
POSTGRES_DB: devweb
POSTGRES_USER: postgres
POSTGRES_PASSWORD: a
ports:
- "5432:5432"
volumes:
- ./sql:/docker-entrypoint-initdb.d

View File

@@ -0,0 +1,15 @@
<?php
require_once 'database.php';
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$db = dbConnect();
if (isset($_GET['request']) && $_GET['request'] == 'channels') {
$channels = dbGetChannels($db);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($channels);
}
?>

View File

@@ -0,0 +1,6 @@
<?php
define('DB_USER', 'postgres');
define('DB_PASSWORD', 'a');
define('DB_NAME', 'devweb');
define('DB_SERVER', '127.0.0.1');
define('DB_PORT', '5432');

View File

@@ -0,0 +1,24 @@
<?php
require_once 'constants.php';
function dbConnect() {
$dsn = 'pgsql:dbname=' . DB_NAME . ';host=' . DB_SERVER . ';port=' . DB_PORT;
try {
$pdo = new PDO($dsn, DB_USER, DB_PASSWORD);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
} catch (PDOException $e) {
return false;
}
}
function dbGetChannels($db) {
try {
$query = "SELECT * FROM channels";
$statement = $db->query($query);
$channels = $statement->fetchAll(PDO::FETCH_ASSOC);
return $channels;
} catch (PDOException $e) {
return false;
}
}

View File

@@ -0,0 +1,3 @@
-- Requête pour la liste des salons (channels) (Step 9)
SELECT * FROM channels;

View File

@@ -0,0 +1,31 @@
DELETE FROM users;
DELETE FROM channels;
DELETE FROM messages;
-- -------------------------------------------------------------------------------
-- --- Populate users database ----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO users(login, nickname, password) VALUES('etudiant0', 'E0','mp0');
INSERT INTO users(login, nickname, password) VALUES('etudiant1', 'E1','mp1');
INSERT INTO users(login, nickname, password) VALUES('etudiant2', 'E2','mp2');
INSERT INTO users(login, nickname, password) VALUES('etudiant3', 'E3','mp3');
-- -------------------------------------------------------------------------------
-- --- Populate channels database ---------------------------------------------------
-- -------------------------------------------------------------------------------
ALTER SEQUENCE channels_id_seq RESTART;
INSERT INTO channels(name) VALUES('General');
INSERT INTO channels(name) VALUES('Musique');
INSERT INTO channels(name) VALUES('Voyage');
INSERT INTO channels(name) VALUES('Cinema');
INSERT INTO channels(name) VALUES('Bricolage');
-------------------------------------------------------------------------------
--- Populate messages database ------------------------------------------------
-------------------------------------------------------------------------------
ALTER SEQUENCE messages_id_seq RESTART;
INSERT INTO messages(userLogin, channelid, message) VALUES('etudiant0', 1, 'a');
INSERT INTO messages(userLogin, channelid, message) VALUES('etudiant1', 1, 'b');
INSERT INTO messages(userLogin, channelid, message) VALUES('etudiant0', 1, 'c');
INSERT INTO messages(userLogin, channelid, message) VALUES('etudiant2', 3, 'd');
INSERT INTO messages(userLogin, channelid, message) VALUES('etudiant3', 4, 'e');

View File

@@ -0,0 +1,37 @@
-- USE devweb_m1;
DROP TABLE IF EXISTS messages;
DROP TABLE IF EXISTS channels;
DROP TABLE IF EXISTS users;
CREATE TABLE users
(
login VARCHAR(20) PRIMARY KEY,
nickname VARCHAR(20) NOT NULL,
password VARCHAR(40) NOT NULL
);
CREATE TABLE channels
(
id SERIAL PRIMARY KEY,
name VARCHAR(20) NOT NULL
);
CREATE TABLE messages
(
id SERIAL PRIMARY KEY,
userLogin VARCHAR(20) NOT NULL,
channelId INT NOT NULL,
message VARCHAR(256) NOT NULL,
timestamp TIMESTAMP NOT NULL default CURRENT_TIMESTAMP,
FOREIGN KEY(userLogin) REFERENCES users(login)
ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY(channelId) REFERENCES channels(id)
ON UPDATE CASCADE ON DELETE CASCADE
);

Binary file not shown.