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.
//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){ ... }
//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(){ ... }
//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(){ ... }
Quelques exemples d'instructions SQL utilisables :
Le mieux est de créer une fonction pour la 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; }
SELECT * FROM SECTION;
SELECT title,description FROM section;
SELECT * FROM section where id=2;
SELECT * FROM section where idParent=2;
SELECT * FROM section INNER JOIN page ON section.idPage=page.id where section.id=2;
$db = connect(); $sql = 'SELECT * FROM section'; $statement=$db->query($sql); foreach ($statement as $row) { print $row['title'] . "\t"; print $row['description'] . "\t"; }
INSERT INTO section VALUES('Un Titre','Aucune description',1,2);
$db = connect(); $db->exec("INSERT INTO section VALUES('Un Titre','Aucune description',1,2);");
UPDATE section SET titre='Autre Titre', Description='Autre description' WHERE id=1;
$db = connect(); $db->exec("UPDATE section SET titre='Autre Titre', Description='Autre description' WHERE id=1;");
DELETE FROM section WHERE id=1;
$db = connect(); $db->exec("DELETE FROM section WHERE id=1;");