Ceci est une ancienne révision du document !
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
Compléments
SQL
Quelques exemples d'instructions SQL utilisables :
Pensez à tester votre instruction SQL dans phpMyAdmin avant intégration à du code PHP
--Connexion
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;
}
--Lecture : READ
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";
}
--Ajout : ADD
INSERT INTO section VALUES('Un Titre','Aucune description',1,2);
$user='root';
$pass='';
$db = connect();
$db->exec("INSERT INTO section VALUES('Un Titre','Aucune description',1,2);");
-- Modification : UPDATE
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;");
Discussion
Bonjour Monsieur,
j'ai quelques difficultés avec une requête SQL de suppression. Voici ce que j'essaye de faire : DELETE FROM page INNER JOIN section ON section.idPage=page.id WHERE section.title='R'
J'essaye de supprimer la page dont l'id correspond à celui d'une section dont le titre est R, remplacé dans mon code par une variable. Cette reqûete ne fonctionne pas non plus en SQL, avec la lettre 'r'. Merci de votre réponse
Bonjour,
il faut préciser la table dans laquelle vous souhaitez supprimer :
Pourriez vous m'expliquez plus en détail la commande utilisée ? L'alias p représente quoi exactement ? Merci
Un alias (p dans le cas présent) permet de nommer temporairement une table (ou une colonne) dans une requête :
Dans le cas présent, p est défini comme étant l'alias de la table page (c'est le page p), ce qui permet de préciser que la clause DELETE doit concerner la table page (DELETE p).
Bonjour monsieur,
j'aurais une question concernant l'identification des sections. Lors de la création, faut-il associer le numéro de la section au numéro de la page correspondante sans se soucier de son id ? Ou alors faut-il spécifier un id afin de faciliter l'affichage des sections ultérieurement ?
Oups, désolé, je n'avais pas vu la question :
les id n'ont aucune importance, ils sont d'ailleurs en auto-incrément
Bonjour monsieur,
j'ai une question en rapport avec l'erreur 1452. Je souhaite que dans le formulaire de connexion les id de l'user soient enregistrés, via ces lignes: $sql = mysql_query(“SELECT * FROM user WHERE login = '$pseudo'”); $user = mysql_fetch_assoc($sql)or die(mysql_error());
session_start(); $_SESSION['user'] = array('id' ⇒ $user['id'], 'login' ⇒ $user['login']);
Je veux ensuite les enregistrer dans le formulaire de génération de page:
<input type="hidden" name="pseudo" value="<?php echo $_SESSION['user']['login']; ?>"/> <input type="hidden" name="id" value="<?php echo $_SESSION['user']['id']; ?>"/> <input type="submit" value="Valider" />Comment faire correspondre l'id enregistré pour l'utilisateur avec l'id de l'auteur ?
Merci de votre réponse
Bonjour,
vous exécutez une requête d'insertion de page faisant référence à $_SESSION['user']['id']
Pas besoin de mettre un champ hidden pour $_SESSION['user']['id'], puisqu'il est en session.
Et vous utilisez les anciennes fonctions mysql (devenues obsolètes) et non la classe PDO, c'est normal ?
Bonjour monsieur, j'ai un problème avec mon phpmyadmin et plus particulièrement la table “page”, rien ne s'ajoute dedans et lorsque j'essaye d’insérer une ligne manuellement, il me sort l'erreur #1452. Si vous voulez j'ai un screenshot de l'erreur pour que vous puisiez voir cela.
Merci de votre réponse, Cordialement.
Bonjour,
l'erreur 1452 de Mysql, c'est : cannot had or update a child row
par exemple si vous essayer d'ajouter une page, sans en préciser l'auteur (idAuthor)
Il ne peut pas y avoir d'enregistrement fils (la page) sans son père (l'auteur correspondant)
Bonjour,
Suite à mon absence de deux semaines j'ai commencé à rattraper les tps de php que j'ai manqué afin de pouvoir aider au plus vite mon binome pour le projet et de ne pas prendre de retard dans celui-ci. Mais reprendre ces tps seul est un peu compliqué. Aussi j'aurais aimé savoir si vous aviez en votre possession les corrigés des codes des exercices vu en tps ce qui me permettrait de travailler plus efficacement.
Je vous remercie de l'attention que vous porterez à ce message et je vous souhaite une bonne soirée.
Bonjour,
je vous ai mis ça sur la page php-rt : http://slamwiki.kobject.net/php-rt
Pour poser vos questions relatives au projet…