php-rt:projet

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

Quelques exemples d'instructions SQL utilisables :

Pensez à tester votre instruction SQL dans phpMyAdmin avant intégration à du code PHP

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);

$user='root';
$pass='';
$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;");

Marc CHOUTEAU, 2014/05/08 17:22

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

Jean-Christophe HERON, 2014/05/10 11:35, 2014/05/10 11:36

Bonjour,
il faut préciser la table dans laquelle vous souhaitez supprimer :

DELETE p FROM page p INNER JOIN section ON section.idPage=p.id WHERE section.title='R'

Marc CHOUTEAU, 2014/05/10 19:18

Pourriez vous m'expliquez plus en détail la commande utilisée ? L'alias p représente quoi exactement ? Merci

Jean-Christophe HERON, 2014/05/11 01:29

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).

CHOUTEAU Marc, 2014/04/22 13:34

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 ?

Jean-Christophe HERON, 2014/04/24 01:01

Oups, désolé, je n'avais pas vu la question :
les id n'ont aucune importance, ils sont d'ailleurs en auto-incrément

CHOUTEAU Marc, 2014/04/21 15:44

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

Jean-Christophe HERON, 2014/04/21 17:14

Bonjour,
vous exécutez une requête d'insertion de page faisant référence à $_SESSION['user']['id']

$sql="INSERT INTO page(id,header, ... ,idAuthor,published) VALUES (NULL, $_POST['header'], ... , '".$_SESSION['user']['id']."', '0');"

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 ?

Corentin GERARD, 2014/04/15 10:09

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.

Jean-Christophe HERON, 2014/04/15 18:07, 2014/04/15 18:09

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)

Boutrois Pierre, 2014/04/12 13:41

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.

Jean-Christophe HERON, 2014/04/13 01:27

Bonjour,
je vous ai mis ça sur la page php-rt : http://slamwiki.kobject.net/php-rt

Jean-Christophe HERON, 2014/03/18 11:12

Pour poser vos questions relatives au projet…

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • php-rt/projet.1395418897.txt.gz
  • Dernière modification : il y a 7 ans
  • (modification externe)