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/07 18:20] – [Modalités de remise du travail] 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 | ||
| - | Le fichier **lisezmoi** doit donner les indications indispensables à l' | ||
| - | </ | ||
| - | |||
| - | * Semaine du 12 mai : soutenances + remise rapport (pdf) | ||
| - | |||
| - | |||
| - | ====== 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 | ||
| - | |||
| - | ==== 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> | ||
| - | </ | ||