php-rt:projet

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:10] – [Création de votre script de Base de données] jcheronphp-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 ====== 
-  * {{:php-rt:projet:projet_cms_v2.pdf|Sujet projet CMS V 1.0.0.2}} 
-  * {{:php-rt:projet:minicms.sql|Base de données}} 
-  * {{:php-rt:projet:grilleevalm2105.pdf|Grille d'évaluation projet}} 
- 
-====== Modalités de remise du travail ====== 
-  * jeudi 24 avril, minuit : rendre projet PHP + Lisezmoi.txt 
-  * Semaine du 12 mai : soutenances + remise rapport (pdf) 
- 
-<html><div class="info">Le fichier <b>lisezmoi.txt</b> devra comporter les informations nécessaires à l'installation et aux tests du développement, et indiquer : 
-<ul> 
-<li>la localisation du script de création de la base de données (à inclure obligatoirement dans l'archive)</li> 
-<li>le login et mot de passe d'un utilisateur du site</li> 
-<li>la répartition du développement entre les 2 membres de l'équipe (modules)</li> 
-</ul> 
-</div></html> 
- 
- 
-====== 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'enregistrements 
-    * 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 (fichier sql) dans l'archive à envoyer : 
- 
-Dans phpMyAdmin :\\ 
-  * cliquer sur le bouton Bases de données : 
-{{:php-rt:projet:selectdb1.png?|}} 
-  * Cliquer ensuite sur votre base de données (minicms par exemple) 
-  * Cliquer sur Exporter 
-{{:php-rt:projet:exportdb1.png|}} 
- 
- 
-==== Exemples de fonctions ==== 
-<sxh php;title:Accès à la base de données> 
-//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 = 'SELECT * FROM user'; 
-  $statement=$db->query($sql); 
- foreach  ($statement as $row) { 
-  $u=array(); 
- $u["login"]=$row["login"]; 
- $u["password"]=$row["password"]; 
- $u["mail"]=$row["mail"]; 
- $users[]=$u; 
- } 
- return $users; 
-} 
- 
-//Supprime l'utilisateur dont l'$id est passé en paramètre 
-function deleteUser($id){ 
-... 
-} 
-</sxh> 
- 
- 
-<sxh php;title:Fonctions d'affichage> 
-//Retourne une liste HTML (<select>) des utilisateurs 
-function usersAsSelect($name="users"){ 
- $users=getUsers(); 
- $result="<select id='".$name."' name='".$name."'>"; 
- foreach ($users as $user){ 
- $result.="<option value='".$user["id"]."'>".$user["login"]."</option>"; 
- } 
- $result.="</select>"; 
- return $result; 
-} 
- 
-//Retourne un tableau HTML des sections 
-function sectionsAsTable(){ 
-... 
-} 
-</sxh> 
- 
-<sxh php;title:Exemples de fonctions utilitaires> 
-//Crée une variable de session de nom $name contenant $value 
-function addSessionVar($name,$value){ 
-... 
-} 
- 
-//Retourne les informations de l'utilisateur connecté (tableau associatif stocké en variable de session) 
-function getUserInfo(){ 
-... 
-} 
-</sxh> 
-===== SQL ===== 
-Quelques exemples d'instructions SQL  utilisables : 
- 
-<html><div class="note">Pensez à tester votre instruction SQL dans <b>phpMyAdmin</b> avant intégration à du code PHP</div></html> 
-==== --Connexion ==== 
-Le mieux est de créer une fonction pour la connexion : 
-<sxh php;title:Exemple de fonction de connexion> 
-function connect(){ 
- $db=null; 
- try{ 
- $db = new PDO('mysql:host=localhost;dbname=minicms',"root", ""); 
- $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
- }catch(Exception $e){ 
- echo "Erreur de connexion"; 
- } 
- return $db; 
-} 
-</sxh> 
-==== --Lecture : READ ==== 
- 
-<sxh sql;title:Liste de toutes les sections> 
-SELECT * FROM SECTION; 
-</sxh> 
- 
-<sxh sql;title:Liste de toutes les sections, avec affichage du title et de la description> 
-SELECT title,description FROM section; 
-</sxh> 
- 
-<sxh sql;title:La section ayant l'id 2> 
-SELECT * FROM section where id=2; 
-</sxh> 
- 
-<sxh sql;title:Les sous-sections de la section 2> 
-SELECT * FROM section where idParent=2; 
-</sxh> 
- 
- 
-<sxh sql;title:La section 2 et sa page > 
-SELECT * FROM section INNER JOIN page ON section.idPage=page.id where section.id=2; 
-</sxh> 
- 
- 
-<sxh php;title:Exemple d'exécution d'une instruction avec affichage du résultat> 
-    $db = connect(); 
-    $sql = 'SELECT * FROM section'; 
-    $statement=$db->query($sql); 
-    foreach  ($statement as $row) { 
-        print $row['title'] . "\t"; 
-        print  $row['description'] . "\t"; 
-  } 
-</sxh> 
- 
-==== --Ajout : ADD ==== 
- 
-<sxh sql;title:Ajout d'une nouvelle section> 
-INSERT INTO section VALUES('Un Titre','Aucune description',1,2); 
-</sxh> 
- 
-<sxh sql;title:Insertion intégrée à du code PHP> 
-$db = connect(); 
-$db->exec("INSERT INTO section VALUES('Un Titre','Aucune description',1,2);"); 
-</sxh> 
- 
-==== -- Modification : UPDATE ==== 
- 
-<sxh sql;title:Modification d'une section existante> 
-UPDATE section SET titre='Autre Titre', Description='Autre description' WHERE id=1; 
-</sxh> 
- 
-<sxh sql;title:Mise à jour intégrée à du code PHP> 
-$db = connect(); 
-$db->exec("UPDATE section SET titre='Autre Titre', Description='Autre description' WHERE id=1;"); 
-</sxh> 
- 
- 
-==== -- Suppression : DELETE ==== 
- 
-<sxh sql;title:Suppression de la section dont l'ID est 1> 
-DELETE FROM section WHERE id=1; 
-</sxh> 
- 
-<sxh sql;title:Suppression intégrée à du code PHP> 
-$db = connect(); 
-$db->exec("DELETE FROM section WHERE id=1;"); 
-</sxh> 
- 
-<html><div class="note"> 
-Attention, un enregistrement qui est associé à des enregistrements fils ne peut être supprimé, sans la suppression préalable de ses fils :<br> 
-<b>Exemples :</b><br> 
-<ol> 
-<li>Si une page est associée à une section, avant de supprimer la page, il faut supprimer la section associée.</li> 
-<li>Si une section a des sections enfants, avant de supprimer la section, il faut supprimer les sections qui lui sont associées.</li> 
- 
-</ol> 
-</div></html> 
  • php-rt/projet.1397902249.txt.gz
  • Dernière modification : il y a 7 ans
  • (modification externe)