241 lines
5.7 KiB
PHP
241 lines
5.7 KiB
PHP
|
<?php
|
|||
|
|
|||
|
function seConnecter() {
|
|||
|
if($_SESSION['auth']){
|
|||
|
$connexion = mysqli_connect(SERVEUR, SUPER_UTILISATRICE, SUPER_MOTDEPASSE, BDD);
|
|||
|
}
|
|||
|
else{
|
|||
|
$connexion = mysqli_connect(SERVEUR, UTILISATRICE_PAR_DEFAUT, MOTDEPASSE_PAR_DEFAUT, BDD);
|
|||
|
}
|
|||
|
if (mysqli_connect_errno()) {
|
|||
|
echo "<script>console.log('Echec de la connexion <20> la base');</script>";
|
|||
|
exit();
|
|||
|
}
|
|||
|
mysqli_set_charset($connexion,'utf8');
|
|||
|
return $connexion;
|
|||
|
}
|
|||
|
|
|||
|
// d<>connexion de la BD
|
|||
|
function deconnectBD($connexion) {
|
|||
|
mysqli_close($connexion);
|
|||
|
}
|
|||
|
|
|||
|
function getAllIngredients(){
|
|||
|
$c = seConnecter();
|
|||
|
$requete = "
|
|||
|
SELECT *
|
|||
|
FROM Ingredient
|
|||
|
ORDER BY nom;
|
|||
|
";
|
|||
|
$resultatIngredients = mysqli_query($c, $requete);
|
|||
|
$listeIngredients = [];
|
|||
|
while($ingredient = mysqli_fetch_assoc($resultatIngredients)){
|
|||
|
$listeIngredients[$ingredient['id']] = $ingredient;
|
|||
|
}
|
|||
|
|
|||
|
deconnectBD($c);
|
|||
|
return $listeIngredients;
|
|||
|
}
|
|||
|
|
|||
|
function getAllUstensiles(){
|
|||
|
$c = seConnecter();
|
|||
|
$requete = "
|
|||
|
SELECT *
|
|||
|
FROM Ustensile
|
|||
|
ORDER BY nom;
|
|||
|
";
|
|||
|
$resultatUstensiles = mysqli_query($c, $requete);
|
|||
|
$listeUstensiles = [];
|
|||
|
while($ustensile = mysqli_fetch_assoc($resultatUstensiles)){
|
|||
|
$listeUstensiles[$ustensile['id']] = $ustensile;
|
|||
|
}
|
|||
|
|
|||
|
deconnectBD($c);
|
|||
|
return $listeUstensiles;
|
|||
|
}
|
|||
|
|
|||
|
function getAllPreparations(){
|
|||
|
$c = seConnecter();
|
|||
|
$requete = "
|
|||
|
SELECT *
|
|||
|
FROM Preparation
|
|||
|
ORDER BY nom;
|
|||
|
";
|
|||
|
$resultatPreparations = mysqli_query($c, $requete);
|
|||
|
$listePreparations = [];
|
|||
|
while($preparation = mysqli_fetch_assoc($resultatPreparations)){
|
|||
|
$listePreparations[$preparation['id']] = $preparation;
|
|||
|
}
|
|||
|
|
|||
|
deconnectBD($c);
|
|||
|
return $listePreparations;
|
|||
|
}
|
|||
|
|
|||
|
function getAllRecettes(){
|
|||
|
$c = seConnecter();
|
|||
|
$requete = "
|
|||
|
SELECT *
|
|||
|
FROM Recette
|
|||
|
ORDER BY nom;
|
|||
|
";
|
|||
|
$resultatRecettes = mysqli_query($c, $requete);
|
|||
|
$listeRecettes = [];
|
|||
|
while($recette = mysqli_fetch_assoc($resultatRecettes)){
|
|||
|
$listeRecettes[$recette['id']] = $recette;
|
|||
|
}
|
|||
|
|
|||
|
deconnectBD($c);
|
|||
|
return $listeRecettes;
|
|||
|
}
|
|||
|
|
|||
|
function recupereGenres($c){
|
|||
|
$requete = "
|
|||
|
SELECT *
|
|||
|
FROM Genre
|
|||
|
;";
|
|||
|
$resultatGenre = mysqli_query($c,$requete);
|
|||
|
$listeGenres = [];
|
|||
|
|
|||
|
while ($genre = mysqli_fetch_assoc($resultatGenre)){
|
|||
|
$listeGenres[$genre['id']] = $genre['nom'];
|
|||
|
}
|
|||
|
|
|||
|
return $listeGenres;
|
|||
|
}
|
|||
|
|
|||
|
function recupereUnites($c){
|
|||
|
$requete = "
|
|||
|
SELECT *
|
|||
|
FROM Unite
|
|||
|
;";
|
|||
|
$resultatUnite = mysqli_query($c,$requete);
|
|||
|
$listeUnites = [];
|
|||
|
|
|||
|
while ($unite = mysqli_fetch_assoc($resultatUnite)){
|
|||
|
$listeUnites[$unite['id']] = $unite['nom'];
|
|||
|
}
|
|||
|
return $listeUnites;
|
|||
|
}
|
|||
|
|
|||
|
// modification vaut false si on effectue une cr<63>ation de recette et l'id de la recette <20> modifier sinon
|
|||
|
// les listes d'ingr<67>dients, de pr<70>paration et d'ustensile sont des tableaux de tableaux index<65>s sur les id des <20>l<EFBFBD>ments utilis<69>s.
|
|||
|
function insererRecette($infosRecette, $listeIngredients, $listeUstensile, $listePreparation, $listeReutilise, $modification){
|
|||
|
$c = seConnecter();
|
|||
|
try {
|
|||
|
mysqli_begin_transaction($c);
|
|||
|
|
|||
|
$nom = echappementBDD($infosRecette['nom']);
|
|||
|
$tempsTotal = calculeMinutesFromTexte($infosRecette['tempsTotal']);
|
|||
|
$genre = $infosRecette['genre'];
|
|||
|
$unitePortion = $infosRecette['unitePortion'];
|
|||
|
$nbPortion = $infosRecette['nbPortion'];
|
|||
|
$realisation = echappementBDD(ecritureVersLecture($infosRecette['realisation']));
|
|||
|
|
|||
|
if($modification){
|
|||
|
$idRecette = $modification;
|
|||
|
$requetePrincipale = "
|
|||
|
UPDATE Recette
|
|||
|
SET
|
|||
|
nom = '$nom',
|
|||
|
tempsTotal = $tempsTotal,
|
|||
|
genre = $genre,
|
|||
|
unitePortion = $unitePortion,
|
|||
|
nbPortion = $nbPortion,
|
|||
|
realisation = '$realisation'
|
|||
|
WHERE id = $idRecette;
|
|||
|
";
|
|||
|
mysqli_query($c, $requetePrincipale);
|
|||
|
|
|||
|
$requeteSupprIngredients = "DELETE FROM RecetteIngredient WHERE recette = $idRecette;";
|
|||
|
mysqli_query($c, $requeteSupprIngredients);
|
|||
|
|
|||
|
$requeteSupprUstensiles = "DELETE FROM RecetteUstensile WHERE recette = $idRecette;";
|
|||
|
mysqli_query($c, $requeteSupprUstensiles);
|
|||
|
|
|||
|
$requeteSupprPreparations = "DELETE FROM RecettePreparation WHERE recette = $idRecette;";
|
|||
|
mysqli_query($c, $requeteSupprPreparations);
|
|||
|
|
|||
|
$requeteSupprReutilises = "DELETE FROM Reutilise WHERE utilisant = $idRecette;";
|
|||
|
mysqli_query($c, $requeteSupprReutilises);
|
|||
|
|
|||
|
}else{
|
|||
|
$requetePrincipale = "
|
|||
|
INSERT INTO Recette (nom, tempsTotal, genre, unitePortion, nbPortion, realisation)
|
|||
|
VALUES (
|
|||
|
'$nom',
|
|||
|
$tempsTotal,
|
|||
|
$genre,
|
|||
|
$unitePortion,
|
|||
|
$nbPortion,
|
|||
|
'$realisation'
|
|||
|
);";
|
|||
|
mysqli_query($c, $requetePrincipale);
|
|||
|
$idRecette = mysqli_insert_id($c);
|
|||
|
}
|
|||
|
|
|||
|
foreach($listeIngredients as $id => $ingredient){
|
|||
|
$quantite = $ingredient['quantite'];
|
|||
|
$unite = $ingredient['unite'];
|
|||
|
$requete = "
|
|||
|
INSERT INTO RecetteIngredient (ingredient, recette, quantite, unite)
|
|||
|
VALUES (
|
|||
|
$id,
|
|||
|
$idRecette,
|
|||
|
$quantite,
|
|||
|
$unite
|
|||
|
)
|
|||
|
;";
|
|||
|
mysqli_query($c, $requete);
|
|||
|
}
|
|||
|
|
|||
|
foreach($listeUstensile as $id => $ustensile){
|
|||
|
$commentaire = mysqli_real_escape_string($c, $ustensile['commentaire']);
|
|||
|
$requete = "
|
|||
|
INSERT INTO RecetteUstensile (ustensile, recette, commentaire)
|
|||
|
VALUES (
|
|||
|
$id,
|
|||
|
$idRecette,
|
|||
|
'$commentaire'
|
|||
|
)
|
|||
|
;";
|
|||
|
mysqli_query($c, $requete);
|
|||
|
}
|
|||
|
|
|||
|
foreach($listePreparation as $id => $preparation){
|
|||
|
$duree = $preparation['duree'];
|
|||
|
$temperature = $preparation['temp'];
|
|||
|
$requete = "
|
|||
|
INSERT INTO RecettePreparation (preparation, recette, duree, temperature)
|
|||
|
VALUES (
|
|||
|
$id,
|
|||
|
$idRecette,
|
|||
|
'$duree',
|
|||
|
'$temperature'
|
|||
|
)
|
|||
|
;";
|
|||
|
mysqli_query($c, $requete);
|
|||
|
}
|
|||
|
|
|||
|
foreach($listeReutilise as $id => $utilisee){
|
|||
|
$requete = "
|
|||
|
INSERT INTO Reutilise (utilisee, utilisant)
|
|||
|
VALUES (
|
|||
|
$id,
|
|||
|
$idRecette
|
|||
|
)
|
|||
|
;";
|
|||
|
mysqli_query($c, $requete);
|
|||
|
}
|
|||
|
mysqli_commit($c);
|
|||
|
}
|
|||
|
catch (Exception $e){
|
|||
|
mysqli_query('ROLLBACK');
|
|||
|
$echec = true;
|
|||
|
}
|
|||
|
|
|||
|
return $idRecette;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
?>
|