Skip to content
Snippets Groups Projects
install.php 3.55 KiB
<?php // Création d'une base de données



  function query($link,$requete)
  { 
    $resultat=mysqli_query($link,$requete) or die("$requete : ".mysqli_error($link));
	return($resultat);
  }

function loadDB(){
	include("Donnees.inc.php");
	$mysqli=mysqli_connect('127.0.0.1', 'root', '') or die("Erreur de connexion");

	// Récupération des tableaux pour les insérer dans une base de données
	if (isset($Recettes)) {
		$tabRecettes = $Recettes;
	}

	if (isset($Hierarchie)){
		$tabHierarchie = $Hierarchie;
	}

	$cmpt = 0;
	$str ="";


	// Parcours de tous les aliments pour les ajouter à la base de donnée
	while (current($tabHierarchie)){
		//echo key($categorie);
		$prep = mysqli_real_escape_string($mysqli, key($tabHierarchie));
		$str .= "INSERT INTO aliments(alim_nom) VALUES ('".$prep."');  ";
		next($tabHierarchie);
	}

	reset($tabHierarchie);
	// Parcours des aliments pour les reliés aux sous-catégories
	while ($categorie = current($tabHierarchie)){
		$souscat = $categorie['sous-categorie'];
		while ($alim = current($souscat)){
			$prep = mysqli_real_escape_string($mysqli, key($tabHierarchie));
			$fils = mysqli_real_escape_string($mysqli, $alim);
			$str .= "INSERT INTO hierarchie(super_nom, sous_nom) VALUES ('".$prep."', '".$fils."');  ";
			next($souscat);
		}
		next($tabHierarchie);
	}

	$valeur = 1;

	// Parcours des recettes et génération des éléments correspondants dans leurs tables
	foreach($tabRecettes as $colonne){
		$titre = mysqli_real_escape_string($mysqli, $colonne['titre']);
		$ingred = mysqli_real_escape_string($mysqli, $colonne['ingredients']);
		$prep = mysqli_real_escape_string($mysqli, $colonne['preparation']);
		if (count($tabRecettes)-1 === $cmpt){
			$str .= "INSERT INTO recettes VALUES (".$cmpt.", '".$titre."', '".$ingred."', '".$prep."')";
		}else{
			$str .= "INSERT INTO recettes VALUES (".$cmpt.", '".$titre."', '".$ingred."', '".$prep."');  ";
		}

		while ($ingred = current($colonne['index'])){
			$prep = mysqli_real_escape_string($mysqli, $ingred);
			$str .= "INSERT INTO ingredientsderecettes VALUES (".$cmpt.", '".$valeur."', '".$prep."');  ";
			next($colonne['index']);
		}
		$valeur++;
	}



	$base="Boissons";
	$Sql="
			DROP DATABASE IF EXISTS $base;  
			CREATE DATABASE $base;  
			USE $base;  

			CREATE TABLE IF NOT EXISTS recettes (
				id INT AUTO_INCREMENT PRIMARY KEY, 
				titre VARCHAR(255) NOT NULL, 
				ingredients VARCHAR(1024) NOT NULL, 
				preparation VARCHAR(4096) NOT NULL
			);  
			
			CREATE TABLE IF NOT EXISTS utilisateurs (
				user_id INT AUTO_INCREMENT PRIMARY KEY, 
				nom VARCHAR(255) NULL, 
				prenom VARCHAR(255) NULL, 
				sexe VARCHAR(1) NULL, 
				email VARCHAR(150) NULL, 
				pseudo VARCHAR(150) NOT NULL UNIQUE, 
				password VARCHAR(32) NOT NULL
			);  

			CREATE TABLE IF NOT EXISTS aliments (
				alim_nom VARCHAR(255) PRIMARY KEY
			);  

			CREATE TABLE IF NOT EXISTS hierarchie (
				super_nom VARCHAR(225) NOT NULL,
				sous_nom VARCHAR(255) NOT NULL,
				PRIMARY KEY (super_nom, sous_nom),
				FOREIGN KEY (super_nom) REFERENCES aliments(alim_nom) ON DELETE CASCADE, 
				FOREIGN KEY (sous_nom) REFERENCES aliments(alim_nom) ON DELETE CASCADE
			);  

			CREATE TABLE IF NOT EXISTS ingredientsderecettes (
				id INT AUTO_INCREMENT PRIMARY KEY, 
				idBoisson INT NOT NULL,
				nomIngredient VARCHAR(255) NOT NULL,
				FOREIGN KEY (idBoisson) REFERENCES recettes(id) ON DELETE CASCADE, 
				FOREIGN KEY (nomIngredient) REFERENCES aliments(alim_nom) ON DELETE CASCADE
			);  
			".$str;


	foreach(explode(';  ',$Sql) as $Requete) query($mysqli,$Requete);

	mysqli_close($mysqli);
}
loadDB();

?>