CARIA.2.0
Suite de la version 1.0.0 repo CARIA - Enormement de modification. - Restructuration du code - Optimisation - Debug . . . Phase de test en cours !
This commit is contained in:
64
modele/event/add-event.php
Normal file
64
modele/event/add-event.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
require '../../config/connexion_sql.php';
|
||||
global $bdd;
|
||||
|
||||
// Récupération et validation des entrées
|
||||
$start = isset($_POST['start']) ? $_POST['start'] : null;
|
||||
$end = isset($_POST['end']) ? $_POST['end'] : null;
|
||||
$id_user = isset($_POST['id_user']) ? intval($_POST['id_user']) : null;
|
||||
$id_vehicule = isset($_POST['id_vehicule']) ? intval($_POST['id_vehicule']) : null;
|
||||
|
||||
// Vérification que toutes les entrées sont présentes et valides
|
||||
if (!$id_user || !$id_vehicule || !$start || !$end) {
|
||||
die(json_encode(['status' => 'error', 'message' => 'Tous les champs sont requis.']));
|
||||
}
|
||||
|
||||
try {
|
||||
// Démarrer la transaction
|
||||
$bdd->beginTransaction();
|
||||
|
||||
// Préparation de la requête SQL avec un titre temporaire
|
||||
$sqlInsert = "INSERT INTO Reservations (title, id_user, id_vehicule, start, end) VALUES ('Temp Title', :id_user, :id_vehicule, :start, :end)";
|
||||
$stmt = $bdd->prepare($sqlInsert);
|
||||
|
||||
// Liaison des valeurs aux paramètres
|
||||
$stmt->bindParam(':id_user', $id_user, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':id_vehicule', $id_vehicule, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':start', $start, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':end', $end, PDO::PARAM_STR);
|
||||
|
||||
// Exécution de la requête préparée
|
||||
if ($stmt->execute()) {
|
||||
// Récupérer l'ID de la dernière réservation insérée
|
||||
$lastInsertId = $bdd->lastInsertId();
|
||||
|
||||
// Mise à jour du titre de la réservation avec l'ID
|
||||
$sqlUpdate = "UPDATE Reservations SET title = CONCAT('Reservation ', :id) WHERE id = :id";
|
||||
$stmtUpdate = $bdd->prepare($sqlUpdate);
|
||||
$stmtUpdate->bindParam(':id', $lastInsertId, PDO::PARAM_INT);
|
||||
|
||||
if ($stmtUpdate->execute()) {
|
||||
// Commit de la transaction
|
||||
$bdd->commit();
|
||||
echo json_encode(['status' => 'success', 'message' => 'Réservation créée avec succès.', 'reservation_id' => $lastInsertId]);
|
||||
} else {
|
||||
// Rollback de la transaction
|
||||
$bdd->rollBack();
|
||||
$error = $stmtUpdate->errorInfo();
|
||||
echo json_encode(['status' => 'error', 'message' => 'Erreur lors de la mise à jour de la réservation : ' . $error[2]]);
|
||||
}
|
||||
} else {
|
||||
// Rollback de la transaction
|
||||
$bdd->rollBack();
|
||||
$error = $stmt->errorInfo();
|
||||
echo json_encode(['status' => 'error', 'message' => 'Erreur lors de la création de la réservation : ' . $error[2]]);
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
// Rollback de la transaction en cas d'exception
|
||||
$bdd->rollBack();
|
||||
echo json_encode(['status' => 'error', 'message' => 'Erreur de connexion à la base de données : ' . $e->getMessage()]);
|
||||
}
|
||||
|
||||
// Fermeture de la connexion PDO
|
||||
$bdd = null;
|
||||
?>
|
||||
80
modele/event/add-my-event.php
Normal file
80
modele/event/add-my-event.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
require '../../config/connexion_sql.php';
|
||||
global $bdd;
|
||||
|
||||
// Vérifier que l'utilisateur est connecté et que l'ID de session est défini
|
||||
if (!isset($id_session)) {
|
||||
die(json_encode(['status' => 'error', 'message' => 'Utilisateur non connecté.']));
|
||||
}
|
||||
$id_user = $id_session; // Récupérer l'ID de l'utilisateur depuis la session
|
||||
|
||||
// Fonction de validation des dates
|
||||
function validateDateTime($dateTime, $format = 'Y-m-d H:i:s') {
|
||||
$d = DateTime::createFromFormat($format, $dateTime);
|
||||
return $d && $d->format($format) === $dateTime;
|
||||
}
|
||||
|
||||
// Récupération et validation des entrées
|
||||
$start = isset($_POST['start']) ? $_POST['start'] : null;
|
||||
$end = isset($_POST['end']) ? $_POST['end'] : null;
|
||||
$id_vehicule = isset($_POST['id_vehicule']) ? intval($_POST['id_vehicule']) : null;
|
||||
|
||||
// Vérification que toutes les entrées sont présentes et valides
|
||||
if (!$id_vehicule || !$start || !$end) {
|
||||
die(json_encode(['status' => 'error', 'message' => 'Tous les champs sont requis.']));
|
||||
}
|
||||
|
||||
// Validation des formats de date
|
||||
if (!validateDateTime($start) || !validateDateTime($end)) {
|
||||
die(json_encode(['status' => 'error', 'message' => 'Les dates doivent être dans un format valide (YYYY-MM-DD HH:MM:SS).']));
|
||||
}
|
||||
|
||||
try {
|
||||
// Démarrer la transaction
|
||||
$bdd->beginTransaction();
|
||||
|
||||
// Préparation de la requête SQL avec des paramètres liés
|
||||
$sqlInsert = "INSERT INTO Reservations (id_user, id_vehicule, start, end) VALUES (:id_user, :id_vehicule, :start, :end)";
|
||||
$stmt = $bdd->prepare($sqlInsert);
|
||||
|
||||
// Liaison des valeurs aux paramètres
|
||||
$stmt->bindParam(':id_user', $id_user, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':id_vehicule', $id_vehicule, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':start', $start, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':end', $end, PDO::PARAM_STR);
|
||||
|
||||
// Exécution de la requête préparée
|
||||
if ($stmt->execute()) {
|
||||
// Récupérer l'ID de la dernière réservation insérée
|
||||
$lastInsertId = $bdd->lastInsertId();
|
||||
|
||||
// Mise à jour du titre de la réservation avec l'ID
|
||||
$sqlUpdate = "UPDATE Reservations SET title = CONCAT('Reservation ', :id) WHERE id = :id";
|
||||
$stmtUpdate = $bdd->prepare($sqlUpdate);
|
||||
$stmtUpdate->bindParam(':id', $lastInsertId, PDO::PARAM_INT);
|
||||
|
||||
if ($stmtUpdate->execute()) {
|
||||
// Commit de la transaction
|
||||
$bdd->commit();
|
||||
echo json_encode(['status' => 'success', 'message' => 'Réservation créée avec succès.', 'reservation_id' => $lastInsertId]);
|
||||
} else {
|
||||
// Rollback de la transaction
|
||||
$bdd->rollBack();
|
||||
$error = $stmtUpdate->errorInfo();
|
||||
echo json_encode(['status' => 'error', 'message' => 'Erreur lors de la mise à jour de la réservation : ' . $error[2]]);
|
||||
}
|
||||
} else {
|
||||
// Rollback de la transaction
|
||||
$bdd->rollBack();
|
||||
$error = $stmt->errorInfo();
|
||||
echo json_encode(['status' => 'error', 'message' => 'Erreur lors de la création de la réservation : ' . $error[2]]);
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
// Rollback de la transaction en cas d'exception
|
||||
$bdd->rollBack();
|
||||
echo json_encode(['status' => 'error', 'message' => 'Erreur de connexion à la base de données : ' . $e->getMessage()]);
|
||||
}
|
||||
|
||||
// Fermeture de la connexion PDO
|
||||
$bdd = null;
|
||||
?>
|
||||
14
modele/event/delete-event.php
Normal file
14
modele/event/delete-event.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
require '../../config/connexion_sql.php';
|
||||
global $bdd;
|
||||
$id = $_POST['id'];
|
||||
$sqlDelete = "DELETE FROM Reservations WHERE id=:id";
|
||||
$stmt = $bdd->prepare($sqlDelete);
|
||||
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
// Utilisation de rowCount() pour obtenir le nombre de lignes affectées
|
||||
$affectedRows = $stmt->rowCount();
|
||||
echo $affectedRows;
|
||||
// Fermeture de la connexion PDO
|
||||
$bdd = null;
|
||||
?>
|
||||
16
modele/event/fetch-all-events.php
Normal file
16
modele/event/fetch-all-events.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
require '../../config/connexion_sql.php';
|
||||
global $bdd;
|
||||
$json = array();
|
||||
$sqlQuery = "SELECT res.*, car.marque, car.modele, usr.pseudo FROM Reservations res INNER JOIN Clients usr ON res.id_user = usr.id INNER JOIN Vehicules car ON res.id_vehicule = car.id ORDER BY res.id";
|
||||
$stmt = $bdd->query($sqlQuery);
|
||||
$eventArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
foreach ($eventArray as &$event) {
|
||||
$event['vehicule'] = $event['marque'] . ' ' . $event['modele']; // Supposons que le nom du véhicule est stocké dans 'marque'
|
||||
}
|
||||
foreach ($eventArray as &$event) {
|
||||
$event['utilisateur'] = $event['pseudo']; // Supposons que le nom du véhicule est stocké dans 'marque'
|
||||
}
|
||||
echo json_encode($eventArray);
|
||||
$bdd = null;
|
||||
?>
|
||||
19
modele/event/fetch-my-events.php
Normal file
19
modele/event/fetch-my-events.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
require '../../config/connexion_sql.php';
|
||||
global $bdd;
|
||||
$id = $_SESSION['id_session'];
|
||||
$json = array();
|
||||
$sqlQuery = "SELECT res.*, car.marque, car.modele, usr.pseudo FROM Reservations res INNER JOIN Clients usr ON res.id_user = usr.id INNER JOIN Vehicules car ON res.id_vehicule = car.id WHERE res.id_user = :id ORDER BY res.id";
|
||||
$stmt = $bdd->prepare($sqlQuery);
|
||||
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$eventArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
foreach ($eventArray as &$event) {
|
||||
$event['vehicule'] = $event['marque'] . ' ' . $event['modele']; // Supposons que le nom du véhicule est stocké dans 'marque'
|
||||
}
|
||||
foreach ($eventArray as &$event) {
|
||||
$event['utilisateur'] = $event['pseudo']; // Supposons que le nom du véhicule est stocké dans 'marque'
|
||||
}
|
||||
echo json_encode($eventArray);
|
||||
$bdd = null;
|
||||
?>
|
||||
Reference in New Issue
Block a user