Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| php-rt:projet [2014/04/19 12:29] – [Création de votre script de Base de données] jcheron | php-rt:projet [2015/04/30 14:46] (Version actuelle) – supprimée jcheron | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ~~DISCUSSION~~ | ||
| - | ====== Projet CMS ====== | ||
| - | Un système de gestion de contenu ou SGC (Content Management System ou CMS) est un outil web permettant de mettre en ligne des contenus Web. WordPress, Joomla, Drupal, Spip en sont les représentants les plus populaires. | ||
| - | Le projet consiste à concevoir une application Web permettant de générer du contenu structuré, affiché ensuite sur un site web. | ||
| - | |||
| - | |||
| - | ====== Fichiers ====== | ||
| - | * {{: | ||
| - | * {{: | ||
| - | * {{: | ||
| - | |||
| - | ====== Modalités de remise du travail ====== | ||
| - | * jeudi 24 avril, minuit : rendre projet PHP + Lisezmoi.txt | ||
| - | * Semaine du 12 mai : soutenances + remise rapport (pdf) | ||
| - | |||
| - | < | ||
| - | <ul> | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ul> | ||
| - | </ | ||
| - | |||
| - | |||
| - | ====== Compléments ====== | ||
| - | ===== Bonnes pratiques ===== | ||
| - | * Alimenter correctement la base de données en ajoutant des enregistrements valides et en nombre suffisant, mettant en valeur votre travail | ||
| - | * respecter la Normalisation HTML 5/Css 3 | ||
| - | * Structurer les fichiers et dossiers de manière cohérente | ||
| - | * Nommer en respectant les normes et de manière significative (pages, fonctions, variables...) | ||
| - | * créer et utiliser des fonctions pour : | ||
| - | * Accès à la base de données pour chargements ou mises à jour d' | ||
| - | * Affichages complexes (nécessitant php) dans les pages HTML | ||
| - | * Fonctions utilitaires | ||
| - | |||
| - | ===== Création de votre script de Base de données ===== | ||
| - | Pour livrer votre base de données avec votre projet, vous devez incorporer le script de création de votre base (fichier sql) dans l' | ||
| - | |||
| - | Dans **phpMyAdmin** :\\ | ||
| - | * cliquer sur le bouton **Bases de données** : | ||
| - | {{: | ||
| - | * Cliquer ensuite sur votre base de données (minicms par exemple), | ||
| - | * Puis sur **Exporter** | ||
| - | {{: | ||
| - | * Choisir **Exécuter** | ||
| - | * puis ouvrir le script créé et téléchargé | ||
| - | {{: | ||
| - | |||
| - | * Ajouter les 2 lignes suivantes au début du script créé : | ||
| - | |||
| - | |||
| - | <sxh sql; | ||
| - | SET SQL_MODE=" | ||
| - | SET time_zone = " | ||
| - | |||
| - | |||
| - | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; | ||
| - | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; | ||
| - | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; | ||
| - | /*!40101 SET NAMES utf8 */; | ||
| - | |||
| - | -- | ||
| - | -- Base de données: `leNomDemaBaseDeDonnees` | ||
| - | -- | ||
| - | CREATE DATABASE IF NOT EXISTS leNomDemaBaseDeDonnees; | ||
| - | USE leNomDemaBaseDeDonnees; | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | <ul> | ||
| - | < | ||
| - | < | ||
| - | </ul> | ||
| - | </ | ||
| - | ==== Exemples de fonctions ==== | ||
| - | <sxh php; | ||
| - | //Retourne une instance de connexion PDO à la base de données | ||
| - | function connect(){ | ||
| - | ... | ||
| - | } | ||
| - | |||
| - | //Retourne un tableau associatif des utilisateurs | ||
| - | function getUsers(){ | ||
| - | $users=array(); | ||
| - | $db = connect(); | ||
| - | $sql = ' | ||
| - | $statement=$db-> | ||
| - | foreach | ||
| - | $u=array(); | ||
| - | $u[" | ||
| - | $u[" | ||
| - | $u[" | ||
| - | $users[]=$u; | ||
| - | } | ||
| - | return $users; | ||
| - | } | ||
| - | |||
| - | //Supprime l' | ||
| - | function deleteUser($id){ | ||
| - | ... | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | |||
| - | <sxh php; | ||
| - | //Retourne une liste HTML (< | ||
| - | function usersAsSelect($name=" | ||
| - | $users=getUsers(); | ||
| - | $result="< | ||
| - | foreach ($users as $user){ | ||
| - | $result.="< | ||
| - | } | ||
| - | $result.="</ | ||
| - | return $result; | ||
| - | } | ||
| - | |||
| - | //Retourne un tableau HTML des sections | ||
| - | function sectionsAsTable(){ | ||
| - | ... | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | <sxh php; | ||
| - | //Crée une variable de session de nom $name contenant $value | ||
| - | function addSessionVar($name, | ||
| - | ... | ||
| - | } | ||
| - | |||
| - | //Retourne les informations de l' | ||
| - | function getUserInfo(){ | ||
| - | ... | ||
| - | } | ||
| - | </ | ||
| - | ===== SQL ===== | ||
| - | Quelques exemples d' | ||
| - | |||
| - | < | ||
| - | ==== --Connexion ==== | ||
| - | Le mieux est de créer une fonction pour la connexion : | ||
| - | <sxh php; | ||
| - | function connect(){ | ||
| - | $db=null; | ||
| - | try{ | ||
| - | $db = new PDO(' | ||
| - | $db-> | ||
| - | }catch(Exception $e){ | ||
| - | echo " | ||
| - | } | ||
| - | return $db; | ||
| - | } | ||
| - | </ | ||
| - | ==== --Lecture : READ ==== | ||
| - | |||
| - | <sxh sql; | ||
| - | SELECT * FROM SECTION; | ||
| - | </ | ||
| - | |||
| - | <sxh sql; | ||
| - | SELECT title, | ||
| - | </ | ||
| - | |||
| - | <sxh sql; | ||
| - | SELECT * FROM section where id=2; | ||
| - | </ | ||
| - | |||
| - | <sxh sql; | ||
| - | SELECT * FROM section where idParent=2; | ||
| - | </ | ||
| - | |||
| - | |||
| - | <sxh sql; | ||
| - | SELECT * FROM section INNER JOIN page ON section.idPage=page.id where section.id=2; | ||
| - | </ | ||
| - | |||
| - | |||
| - | <sxh php; | ||
| - | $db = connect(); | ||
| - | $sql = ' | ||
| - | $statement=$db-> | ||
| - | foreach | ||
| - | print $row[' | ||
| - | print $row[' | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ==== --Ajout : ADD ==== | ||
| - | |||
| - | <sxh sql; | ||
| - | INSERT INTO section VALUES(' | ||
| - | </ | ||
| - | |||
| - | <sxh sql; | ||
| - | $db = connect(); | ||
| - | $db-> | ||
| - | </ | ||
| - | |||
| - | ==== -- Modification : UPDATE ==== | ||
| - | |||
| - | <sxh sql; | ||
| - | UPDATE section SET titre=' | ||
| - | </ | ||
| - | |||
| - | <sxh sql; | ||
| - | $db = connect(); | ||
| - | $db-> | ||
| - | </ | ||
| - | |||
| - | |||
| - | ==== -- Suppression : DELETE ==== | ||
| - | |||
| - | <sxh sql; | ||
| - | DELETE FROM section WHERE id=1; | ||
| - | </ | ||
| - | |||
| - | <sxh sql; | ||
| - | $db = connect(); | ||
| - | $db-> | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | Attention, un enregistrement qui est associé à des enregistrements fils ne peut être supprimé, sans la suppression préalable de ses fils :<br> | ||
| - | < | ||
| - | <ol> | ||
| - | < | ||
| - | < | ||
| - | |||
| - | </ol> | ||
| - | </ | ||