Refactorisation passage à SLQite3 (début)
Pages faites : - accueil - statistiques - ajouterElement
This commit is contained in:
parent
c3ab5baad7
commit
90be5dd519
17 changed files with 1224 additions and 412 deletions
|
@ -1,70 +1,63 @@
|
|||
<?php
|
||||
function transformeCharsAutorises($entree){
|
||||
$transformations = [
|
||||
'#Œ#' => 'Oe',
|
||||
'#œ#' => 'oe',
|
||||
'#Æ#' => 'Ae',
|
||||
'#æ#' => 'ae',
|
||||
'#[^a-zàâäéèêëîïôöùûüÿçñA-ZÀÂÄÉÈÊËÎÏÔÖÙÛÜŸÇÑ ,\'-]#' => '',
|
||||
'#^[ ,-]+#' => '',
|
||||
'#[ ]+$#' => '',
|
||||
'#\'#' => '\\\''
|
||||
];
|
||||
foreach ($transformations as $reEtape => $remplacement){
|
||||
$entree = preg_replace($reEtape, $remplacement, $entree);
|
||||
}
|
||||
// $transformations = [
|
||||
// '#Œ#' => 'Oe',
|
||||
// '#œ#' => 'oe',
|
||||
// '#Æ#' => 'Ae',
|
||||
// '#æ#' => 'ae',
|
||||
// '#[^a-zàâäéèêëîïôöùûüÿçñA-ZÀÂÄÉÈÊËÎÏÔÖÙÛÜŸÇÑ ,\'-]#' => '',
|
||||
// '#^[ ,-]+#' => '',
|
||||
// '#[ ]+$#' => '',
|
||||
// '#\'#' => '\\\''
|
||||
// ];
|
||||
// foreach ($transformations as $reEtape => $remplacement){
|
||||
// $entree = preg_replace($reEtape, $remplacement, $entree);
|
||||
// }
|
||||
|
||||
$entree = mb_strtoupper(mb_substr($entree, 0, 1)) . mb_substr($entree, 1);
|
||||
// $entree = mb_strtoupper(mb_substr($entree, 0, 1)) . mb_substr($entree, 1);
|
||||
return $entree;
|
||||
}
|
||||
|
||||
function calculeMinutesFromTexte($texteDuree){
|
||||
$texteDuree = preg_replace("/ /", "", $texteDuree);
|
||||
// $texteDuree = preg_replace("/ /", "", $texteDuree);
|
||||
|
||||
preg_match("#(?:([0-9]*) ?j(?:our\(s\)|our|ours)?)? ?(?:([0-9]*) ?h(?:eure\(s\)|eure|eures)?)? ?(?:([0-9]*) ?min(?:ute\(s\)|ute|utes)?)?#", $texteDuree, $matches) ;
|
||||
// preg_match("#(?:([0-9]*) ?j(?:our\(s\)|our|ours)?)? ?(?:([0-9]*) ?h(?:eure\(s\)|eure|eures)?)? ?(?:([0-9]*) ?min(?:ute\(s\)|ute|utes)?)?#", $texteDuree, $matches) ;
|
||||
|
||||
$dureeMinutes = 0;
|
||||
// $dureeMinutes = 0;
|
||||
|
||||
foreach($matches as $clef => $duree){
|
||||
if ($clef == 1 and $duree != NULL){$dureeMinutes += 1440*$duree;}
|
||||
if ($clef == 2 and $duree != NULL){$dureeMinutes += 60*$duree;}
|
||||
if ($clef == 3){$dureeMinutes += intval($duree);}
|
||||
}
|
||||
// foreach($matches as $clef => $duree){
|
||||
// if ($clef == 1 and $duree != NULL){$dureeMinutes += 1440*$duree;}
|
||||
// if ($clef == 2 and $duree != NULL){$dureeMinutes += 60*$duree;}
|
||||
// if ($clef == 3){$dureeMinutes += intval($duree);}
|
||||
// }
|
||||
|
||||
return $dureeMinutes;
|
||||
return $texteDuree;
|
||||
}
|
||||
|
||||
function calculeTexteFromMinutes($minute){
|
||||
|
||||
$restant = $minute;
|
||||
$texteMinutes = '';
|
||||
$tempsJours = intdiv($restant,1440);
|
||||
$texteMinutes .= ($tempsJours) != 0 ? $tempsJours . ' jour(s) ' : '';
|
||||
$restant = $restant % 1440;
|
||||
$tempsHeures = intdiv($restant,60);
|
||||
$texteMinutes .= ($tempsHeures) != 0 ? $tempsHeures . ' heure(s) ' : '';
|
||||
$restant = $restant % 60;
|
||||
$texteMinutes .= ($restant) != 0 ? $restant . ' minute(s)' : '';
|
||||
// $restant = $minute;
|
||||
// $texteMinutes = '';
|
||||
// $tempsJours = intdiv($restant,1440);
|
||||
// $texteMinutes .= ($tempsJours) != 0 ? $tempsJours . ' jour(s) ' : '';
|
||||
// $restant = $restant % 1440;
|
||||
// $tempsHeures = intdiv($restant,60);
|
||||
// $texteMinutes .= ($tempsHeures) != 0 ? $tempsHeures . ' heure(s) ' : '';
|
||||
// $restant = $restant % 60;
|
||||
// $texteMinutes .= ($restant) != 0 ? $restant . ' minute(s)' : '';
|
||||
|
||||
|
||||
return $texteMinutes;
|
||||
return $minute;
|
||||
}
|
||||
|
||||
function lectureVersEcriture($texte){
|
||||
$texte = preg_replace("#<br/>#","##",$texte);
|
||||
$texte = preg_replace("#</p><p>#","\n",$texte);
|
||||
$texte = preg_replace("#⌀#","#diam",$texte);
|
||||
function lectureVersEcriture($texte){// no-op
|
||||
return $texte;
|
||||
}
|
||||
function ecritureVersLecture($texte){
|
||||
$texte = preg_replace("/##/","<br/>",$texte);
|
||||
$texte = preg_replace("/\n/","</p><p>",$texte);
|
||||
$texte = preg_replace("/#diam/","⌀",$texte);
|
||||
function ecritureVersLecture($texte){//
|
||||
return $texte;
|
||||
}
|
||||
|
||||
function echappementBDD($texte){ //echappe tous les caractères pour que la chaînes soit acceptable dasn une requete SQL
|
||||
$texte = preg_replace("/'/","\'",$texte);
|
||||
function echappementBDD($texte){ // no-op
|
||||
return $texte;
|
||||
}
|
||||
?>
|
257
inc/modele.php
257
inc/modele.php
|
@ -1,124 +1,192 @@
|
|||
<?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 à la base');</script>";
|
||||
exit();
|
||||
}
|
||||
mysqli_set_charset($connexion,'utf8');
|
||||
return $connexion;
|
||||
}
|
||||
function getDB() {return new SQLite3("db/cuisine.db");}
|
||||
|
||||
// déconnexion de la BD
|
||||
function deconnectBD($connexion) {
|
||||
mysqli_close($connexion);
|
||||
function getAssocFromQueryString($qs){
|
||||
$db = getDB();
|
||||
$stmt = $db->prepare($qs);
|
||||
$result = $stmt->execute();
|
||||
$assocArray = [];
|
||||
while ($ligne = $result->fetchArray(SQLITE3_ASSOC)){
|
||||
$assocArray[] = $ligne;
|
||||
}
|
||||
return $assocArray;
|
||||
}
|
||||
|
||||
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;
|
||||
$requeteListeIngredient = "SELECT nom, id FROM Ingredient ORDER BY nom;";
|
||||
$resultatListeIngredient = getAssocFromQueryString($requeteListeIngredient);
|
||||
$listeIngredient = [];
|
||||
foreach ($resultatListeIngredient as $infoIngredient){
|
||||
$listeIngredient[$infoIngredient['id']] = $infoIngredient;
|
||||
}
|
||||
|
||||
deconnectBD($c);
|
||||
return $listeIngredients;
|
||||
return $listeIngredient;
|
||||
}
|
||||
|
||||
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;
|
||||
$requete = "SELECT nom, id FROM Ustensile ORDER BY nom;";
|
||||
$resultatListeUstensile = getAssocFromQueryString($requete);
|
||||
$listeUstensile = [];
|
||||
foreach ($resultatListeUstensile as $infoUstensile){
|
||||
$listeUstensile[$infoUstensile['id']] = $infoUstensile;
|
||||
}
|
||||
|
||||
deconnectBD($c);
|
||||
return $listeUstensiles;
|
||||
return $listeUstensile;
|
||||
}
|
||||
|
||||
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;
|
||||
$requete = "SELECT nom, id FROM Preparation ORDER BY nom;";
|
||||
$resultatListePreparation = getAssocFromQueryString($requete);
|
||||
$listePreparation = [];
|
||||
foreach ($resultatListePreparation as $infoPreparation){
|
||||
$listePreparation[$infoPreparation['id']] = $infoPreparation;
|
||||
}
|
||||
|
||||
deconnectBD($c);
|
||||
return $listePreparations;
|
||||
return $listePreparation;
|
||||
}
|
||||
|
||||
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;
|
||||
$requete = "SELECT * FROM Recette ORDER BY nom;";
|
||||
$resultatRecettes = getAssocFromQueryString($requete);
|
||||
$listeRecette = [];
|
||||
foreach($resultatRecettes as $infoRecette){
|
||||
$listeRecette[$infoRecette['id']] = $infoRecette;
|
||||
}
|
||||
|
||||
deconnectBD($c);
|
||||
return $listeRecettes;
|
||||
return $listeRecette;
|
||||
}
|
||||
|
||||
function recupereGenres($c){
|
||||
$requete = "
|
||||
SELECT *
|
||||
FROM Genre
|
||||
;";
|
||||
$resultatGenre = mysqli_query($c,$requete);
|
||||
$listeGenres = [];
|
||||
|
||||
while ($genre = mysqli_fetch_assoc($resultatGenre)){
|
||||
$listeGenres[$genre['id']] = $genre['nom'];
|
||||
function getAllGenres(){
|
||||
$requete = "SELECT nom, id FROM Genre;";
|
||||
$resultatGenre = getAssocFromQueryString($requete);
|
||||
$listeGenre = [];
|
||||
foreach ($resultatGenre as $infoGenre){
|
||||
$listeGenre[$infoGenre['id']] = $infoGenre;
|
||||
}
|
||||
|
||||
return $listeGenres;
|
||||
return $listeGenre;
|
||||
}
|
||||
|
||||
function recupereUnites($c){
|
||||
$requete = "
|
||||
SELECT *
|
||||
FROM Unite
|
||||
;";
|
||||
$resultatUnite = mysqli_query($c,$requete);
|
||||
$listeUnites = [];
|
||||
|
||||
while ($unite = mysqli_fetch_assoc($resultatUnite)){
|
||||
$listeUnites[$unite['id']] = $unite['nom'];
|
||||
function getAllUnites(){
|
||||
$requete = "SELECT * FROM Unite;";
|
||||
$resultatUnite = getAssocFromQueryString($requete);
|
||||
$listeUnite = [];
|
||||
foreach ($resultatUnite as $unite){
|
||||
$listeUnite[$unite['id']] = $unite;
|
||||
}
|
||||
return $listeUnites;
|
||||
return $listeUnite;
|
||||
}
|
||||
|
||||
// modification vaut false si on effectue une création de recette et l'id de la recette à modifier sinon
|
||||
// les listes d'ingrédients, de préparation et d'ustensile sont des tableaux de tableaux indexés sur les id des éléments utilisés.
|
||||
function getRecetteFromId($id){
|
||||
$requete = "SELECT * FROM Recette WHERE id=$id;";
|
||||
$resultat = getAssocFromQueryString($requete);
|
||||
return ($resultat ? $resultat[0] : false);
|
||||
}
|
||||
|
||||
function getRecetteFullFromId($id){
|
||||
$requete =
|
||||
"SELECT r.nom, r.id idRecette, r.nbPortion portions, u.nom unite, r.realisation, u.id idU, r.tempsTotal tempsTotal, g.nom genre
|
||||
FROM Recette r JOIN Unite u ON r.unitePortion = u.id JOIN Genre g ON r.genre = g.id
|
||||
WHERE r.id = $id";
|
||||
$resultat = getAssocFromQueryString($requete);
|
||||
return ($resultat ? $resultat[0] : false);
|
||||
}
|
||||
|
||||
function getAllIngredientsWithRecetteId($id){
|
||||
$requete =
|
||||
"SELECT ri.ingredient idIngredient, i.nom nom, ri.quantite quantite, u.nom unite, u.id idU
|
||||
FROM Ingredient i JOIN RecetteIngredient ri ON i.id = ri.ingredient JOIN Unite u ON ri.unite = u.id
|
||||
WHERE ri.recette = $id
|
||||
ORDER BY nom;";
|
||||
$resultat = getAssocFromQueryString($requete);
|
||||
$listeIngredient = [];
|
||||
foreach ($resultat as $key => $value) {
|
||||
$listeIngredient[] = $value;
|
||||
}
|
||||
return $listeIngredient;
|
||||
}
|
||||
|
||||
function getAllUstensileWithRecetteId($id){
|
||||
$requete =
|
||||
"SELECT ru.ustensile idUstensile, u.nom nom, ru.commentaire commentaire
|
||||
FROM Ustensile u JOIN RecetteUstensile ru ON u.id = ru.ustensile
|
||||
WHERE ru.recette = $id
|
||||
ORDER BY nom;";
|
||||
$resultat = getAssocFromQueryString($requete);
|
||||
$listeUstensile = [];
|
||||
foreach ($resultat as $key => $value) {
|
||||
$listeUstensile[] = $value;
|
||||
}
|
||||
return $listeUstensile;
|
||||
}
|
||||
|
||||
function getAllPreparationWithRecetteId($id){
|
||||
$requete =
|
||||
"SELECT rp.preparation idPreparation, p.nom nom, rp.duree duree, rp.temperature temperature
|
||||
FROM Preparation p JOIN RecettePreparation rp ON p.id = rp.preparation
|
||||
WHERE rp.recette = $id
|
||||
ORDER BY nom;";
|
||||
$resultat = getAssocFromQueryString($requete);
|
||||
$listePreparation = [];
|
||||
foreach ($resultat as $key => $value) {
|
||||
$listePreparation[] = $value;
|
||||
}
|
||||
return $listePreparation;
|
||||
}
|
||||
|
||||
function getGenreWithRecetteId($id){
|
||||
$requete =
|
||||
"SELECT g.id id, g.nom nom
|
||||
FROM Genre g JOIN Recette r ON g.id = r.genre
|
||||
WHERE r.id = $id;";
|
||||
$resultat = getAssocFromQueryString($requete);
|
||||
return ($resultat ? $resultat[0] : false);
|
||||
}
|
||||
|
||||
function getAllReutiliseeWithRecetteId($id){
|
||||
$requete =
|
||||
"SELECT reu.utilisee id, rec.nom nom
|
||||
FROM Reutilise reu JOIN Recette rec ON reu.utilisee = rec.id
|
||||
WHERE reu.utilisant = $id
|
||||
ORDER BY nom;";
|
||||
$resultat = getAssocFromQueryString($requete);
|
||||
$listeReutilisee = [];
|
||||
foreach ($resultat as $key => $value) {
|
||||
$listePreparation[] = $value;
|
||||
}
|
||||
return $listeReutilisee;
|
||||
}
|
||||
|
||||
function getRecetteCount(){
|
||||
$requete = "SELECT COUNT(*) nb FROM Recette;";
|
||||
$ret = getAssocFromQueryString($requete)[0]["nb"];
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function safePutIngredient($nom, $dispo){
|
||||
$db = getDB();
|
||||
$nomSafe = $db->escapeString($nom);
|
||||
$requete = "INSERT INTO Ingredient (nom, " . implode(', ', lANNEE) . ") VALUES ('$nomSafe'";
|
||||
foreach (lANNEE as $mois){
|
||||
$requete .= ", " . ($dispo[$mois] ? "1" : "0");
|
||||
}
|
||||
$requete .= ");";
|
||||
return $db->exec($requete);
|
||||
|
||||
}
|
||||
|
||||
function safePutUstensile($nom){
|
||||
$db = getDB();
|
||||
$nomSafe = $db->escapeString($nom);
|
||||
$requete = "INSERT INTO Ustensile (nom) VALUES ('$nomSafe');";
|
||||
return $db->exec($requete);
|
||||
}
|
||||
|
||||
function safePutUnite($nom){
|
||||
$db = getDB();
|
||||
$nomSafe = $db->escapeString($nom);
|
||||
$requete = "INSERT INTO Unite (nom) VALUES ('$nomSafe');";
|
||||
return $db->exec($requete);
|
||||
}
|
||||
|
||||
// modification vaut false si on effectue une création de recette et l'id de la recette à modifier sinon
|
||||
// les listes d'ingrédients, de préparation et d'ustensile sont des tableaux de tableaux indexés sur les id des éléments utilisés.
|
||||
function insererRecette($infosRecette, $listeIngredients, $listeUstensile, $listePreparation, $listeReutilise, $modification){
|
||||
$c = seConnecter();
|
||||
try {
|
||||
|
@ -237,4 +305,5 @@ function insererRecette($infosRecette, $listeIngredients, $listeUstensile, $list
|
|||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue