BTS SIO Services Informatiques aux Organisations Option SISR Session MINYAS Fatih 2016 Activité professionnelle N° 5 NATURE DE L'ACTIVITE INTITULE DE L'ACTIVITE PROFESSIONNELLE Contexte Objectifs Création base de données Créer une base de données afin d’y stocker des données et y introduire des catégories En formation Lieu de réalisation SOLUTIONS ENVISAGEABLES Créer une base de données afin d’y stocker des informations en créant les ca Conditions initiales DESCRIPTION DE LA SOLUTION RETENUE Aucune base de données n’existe Conditions finales Outils utilisés Création d’une base de données et de ses catégories. Xamp server, terminal et Mozilla firefox. Matériels CONDITIONS DE REALISATION Ordinateur Linux Haze 5.2. Logiciels Xamp server et Mozilla firefox. Durée 3 heures. Contraintes Ø COMPETENCES MISES EN OEUVRE POUR CETTE ACTIVITE PROFESSIONNELLE A1.3.4- Déploiement d'un service A 1.4.3-Gestion des ressources A 4.1.3-Conception ou adaptation d'une base de données DEROULEMENT DE L'ACTIVITE Cette 2 façons mission peut être réalisée de installer via le daemon mysql les commande l’interface de celui-ci ou bien en utilisant seconde plus option qui est plus rapide et Dans un 1er temps nous allons démarrer différentes la 1ere en utilisant le term avec les dépendances de XAMPP l Web Phpmyadmin : dans notre situatio visuel. le daemon Xampp Soit en terminal via la commande : sudo /opt/lampp/lampp start ou en installant un utilitaire permettant graphique (de la même manière que pour installer l’utilitaire il suffit d’entrer d’activer les services de xampp via sous Windows) la commande suivante : gksu /opt/lampp/share/xampp-control-panel/xampp-control-panel Une fois Xampp démarré nous allons nous rendre sur la page de phpmyadmin Via http : localhost/ p h p m y a d m i n nous arrivons alors sur cette page Ensuite pour créer une base de données, il faut cliquer sur l’onglet base de données Puis nous entrons le nom de notre base de donnée ici nous e Nous nous rendrons ensuite dans la table en la sélectionnant dans le panneau de gauche Puis nous créerons les tables à partir de l’interface SQL pour ce faire sélectionné l’onglet SQL dans le menu central. Nous allons donc pouvoir saisir nos requêtes SQL Voici les requêtes utilisés dans notre situation : Création de la table catégorie : CREATE TABLE IF NOT EXISTS `categorie` ( `id` int(11) NOT NULL, `designation` varchar(255) NOT NULL, `parent_id` int(11) DEFAULT NULL ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; Insertion des attributs de la table catégorie : INSERT INTO `categorie` (`id`, `designation`, `parent_id`) VALUES (1, 'Papiers', NULL), (2, 'Cahiers, blocs et feuilles', NULL), (3, 'Reliure et présentation', NULL); Création de la table commande : CREATE TABLE IF NOT EXISTS `commande` ( `id` int(11) NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `utilisateur_id` int(11) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; Insertion du contenu de la table commande : INSERT INTO `commande` (`id`, `date`, `utilisateur_id`) VALUES (1, '2015-02-24 17:41:59', 1), (2, '2015-02-24 17:41:59', 2), (3, '2015-02-24 17:42:08', 1), (4, '2015-02-24 17:42:08', 2), Création de la table detail commande : CREATE TABLE IF NOT EXISTS `detail_commande` ( `id` int(11) NOT NULL, `commande_id` int(11) NOT NULL, `produit_id` int(11) NOT NULL, `quantite` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Création de la table detail panier : CREATE TABLE IF NOT EXISTS `detail_panier` ( `id` int(11) NOT NULL, `panier_id` int(11) NOT NULL, `produit_id` int(11) NOT NULL, `quantite` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Création de la table panier : CREATE TABLE IF NOT EXISTS `panier` ( `id` int(11) NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `utilisateur_id` int(11) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; Insertion du contenu de la table commande : INSERT INTO `panier` (`id`, `date`, `utilisateur_id`) VALUES (1, '2015-02-24 17:41:59', 1), (2, '2015-02-24 17:41:59', 2), (3, '2015-02-24 17:42:08', 1), (4, '2015-02-24 17:42:08', 2), (5, '2015-02-24 17:42:16', 3), (6, '2015-02-24 17:42:16', 1), (7, '2015-02-24 17:42:23', 1), (8, '2015-02-24 17:42:23', 3); Création de la table photo : CREATE TABLE IF NOT EXISTS `photo` ( `id` int(11) NOT NULL, `produit_id` int(11) NOT NULL, `url` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Création de la table produit : CREATE TABLE IF NOT EXISTS `produit` ( `id` int(11) NOT NULL, `designation` varchar(255) CHARACTER SET utf8 NOT NULL, `prix_unitaire` decimal(10,2) NOT NULL, `tva_id` int(11) NOT NULL, `categorie_id` int(11) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; Insertion du contenu de la table produit : INSERT INTO `produit` (`id`, `designation`, `prix_unitaire`, `tva_id`, `categorie_id`) VALUES (1, 'Papier photo glacé Blanc Epson A4 200 g/m² - 20 / Paquet', '10.90', 1, 1), (2, 'Ramette 500 feuilles Office DEPOT Everyday A4 80g/m²', '3.75', 1, 1), (3, 'Ramette de papier de 500 feuilles - Clairefontaine - Trophée - A4 80g/m² canari', '5.99', 1, 1); Création de la table utilisateur : CREATE TABLE IF NOT EXISTS `utilisateur` ( `id` int(11) NOT NULL, `nom` varchar(50) NOT NULL, `prenom` varchar(50) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; Insertion du contenu de la table utilisateur : INSERT INTO `utilisateur` (`id`, `nom`, `prenom`) VALUES (1, 'paul', ''), (2, 'jean', ''), (3, 'nicolas', ''), (4, 'didier', ''); Nous procédons ensuite à quelques tests afin de vérifié que la base de donnés à bien été complétée Pour ce faire nous allons tester quelques requètes SQL La 1ère select * from catégorie Cette requète SQL doit afficher l’intégralité du contenue de la table catégorie 2ème requête SQL : SELECT * FROM `produit` ORDER BY `produit`.`prix_unitaire` ASC Cette requête permet d’afficher la table produit tout en classant les produits par prix ascendant L’avantage de l’interface phpmyadmin est de pouvoir voir directement si les tables ont bien été crée via le volet de navigation de gauche. Afin de tester la base de donnée et son utilisation par une application web nous allons créé une page en PHP afin d’afficher la table produit en voici le code : Cette page permet donc d’afficher le produit sa désignation, le prix unitaire, la tva seulement si celui-ci appartient à la catégorie papiers. On place notre page « index.php » à la racine du dossier htdocs Puis nous ouvrons notre navigateur et entrons l’url : localhost La page suivante s’ouvre. On constate ainsi que les données sont utilisable que la relation entre les tables fonctionne correctement.