Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- try{
- // On se connecte à MySQL
- $bdd = new PDO('mysql:host=localhost;dbname=gestion;charset=utf8', 'root', '');
- }
- catch(Exception $e)
- {
- // En cas d'erreur, on affiche un message et on arrête tout
- die('Erreur : '.$e->getMessage());
- }
- ?>
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8">
- <title>TP PHP OBJET</title>
- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
- </head>
- <body style="padding:30px;">
- <a style=" float: right;" onclick="visible()" href="#">Ajouter commentaire ou billet (Moderateur)</a>
- <script>function visible(){ document.getElementById('input').style.visibility = 'visible';} </script>
- Trier tous les billets par
- <a href="?dateB">date</a> |
- <a href="?titre">titre</a><br>
- <form action="index.php?ajout" method="POST"><input value="azerty" type="password" id="input" name="mdp" style="float: right;visibility:hidden"></form>
- Trier tous les commentaires par
- <a href="?dateC">date</a> |
- <a href="?auteurSQL">auteur</a><br>
- <form action="">
- <label>Afficher tous les commentaires du billet : </label>
- <select name="id" onchange='f(this)'>
- <option value="" ></option>
- <?php $req = $bdd->query('SELECT titre,id FROM billet');
- while ($donnees = $req->fetch())
- { ?>
- <option value="<?php echo $donnees['id']; ?>"><?php echo $donnees['titre']; ?></option>
- <?php } ?>
- </select>
- </form>
- <script>function f(event){ var id=event.value; window.location.href = 'index.php?id='+id+'&dateC';}</script>
- <form action="">
- <label>Afficher tous les article commenté par l'auteur : </label>
- <select name="auteur" onchange='f2(this)'>
- <option value="" ></option>
- <?php $req = $bdd->query('SELECT DISTINCT auteur FROM commentaire');
- while ($donnees = $req->fetch())
- { ?>
- <option value="<?php echo $donnees['auteur']; ?>"><?php echo $donnees['auteur']; ?></option>
- <?php } ?>
- </select>
- </form>
- <script>function f2(event){var auteur=event.value; window.location.href = 'index.php?auteur='+auteur;}</script>
- <a href="index.php">Supprimer les filtres ou trie</a><br>
- </br>
- <?php if(isset($_GET['ajout'])){
- if(isset($_POST['mdp']) AND $_POST['mdp'] == "azerty"){?>
- Ajouter un billet<br>
- <form action="index.php?insertB" method="POST">
- <input type="date" name="date">date<br>
- <input type="text" name="titre">titre<br>
- <textarea name="contenu"></textarea>contenu
- <input type="submit" value="Envoyer">
- </form>
- <br>
- Ajouter un commentaire<br>
- <form action="index.php?insertC" method="POST">
- <input type="date" name="date">date<br>
- <input type="text" name="auteur">auteur<br>
- <input type="mail" name="mail">mail<br>
- <textarea name="commentaire"></textarea>commentaire<br>
- <select name="id">
- <option value="" ></option>
- <?php $req = $bdd->query('SELECT titre,id FROM billet');
- while ($donnees = $req->fetch()){ ?>
- <option value="<?php echo $donnees['id']; ?>"><?php echo $donnees['titre']; ?></option>
- <?php } ?>
- </select>Billet
- <input type="submit" value="Envoyer">
- </form>
- <?php }else{ echo "Mot de passe incorrect ! "; } } ?>
- <hr>
- <?php
- //Class Billet
- class Billet{
- private $Id_bil;
- private $Date_bil;
- private $Titre_bil;
- private $contenu;
- public function __construct($id, $date, $titre, $contenU){
- $this->Id_bil = $id;
- $this->Date_bil = $date;
- $this->Titre_bil = $titre;
- $this->contenu = $contenU;
- }
- public function getBillet(){
- return "ID : ".$this->Id_bil."<br><b>".$this->Titre_bil."</b> / ".$this->Date_bil."<br> ".$this->contenu."<br>";
- }
- public function getIdbil(){
- return $this->Id_bil;
- }
- public function getTitre(){
- return $this->Titre_bil;
- }
- }
- //Recuperation des billets et/ou trie
- if(isset($_GET['dateB'])){
- $req = $bdd->query('SELECT * FROM billet ORDER BY date desc');
- while ($donnees = $req->fetch())
- {
- $Billet[] = new Billet($donnees['id'], $donnees['date'], $donnees['titre'], $donnees['contenu']);
- }
- }elseif(isset($_GET['titre'])){
- $req = $bdd->query('SELECT * FROM billet ORDER BY titre');
- while ($donnees = $req->fetch())
- {
- $Billet[] = new Billet($donnees['id'], $donnees['date'], $donnees['titre'], $donnees['contenu']);
- }
- }elseif(isset($_GET['auteur'])){
- $auteur = $_GET['auteur'];
- $req = $bdd->query('SELECT * FROM billet WHERE id IN (SELECT DISTINCT id_bil FROM commentaire WHERE auteur = "'.$auteur.'") ORDER BY date desc');
- while ($donnees = $req->fetch())
- {
- $Billet[] = new Billet($donnees['id'], $donnees['date'], $donnees['titre'], $donnees['contenu']);
- }
- }else{
- $req = $bdd->query('SELECT * FROM billet');
- while ($donnees = $req->fetch())
- {
- $Billet[] = new Billet($donnees['id'], $donnees['date'], $donnees['titre'], $donnees['contenu']);
- }
- }
- //ajout d'un billet :
- if(isset($_GET['insertB'])){
- if(empty($_POST['date'])){}else{
- $date = $_POST['date'];
- $titre = $_POST['titre'];
- $contenu = $_POST['contenu'];
- $bdd->query ("INSERT INTO `gestion`.`billet` (`id`, `date`, `titre`, `contenu`) VALUES (NULL, '".$date."', '".$titre."', '".$contenu."')");
- header('location: index.php');
- }
- }
- //Class Commentaire
- class Commentaire{
- private $Id_com;
- private $Date_com;
- private $Auteur_com;
- private $Mail_auteur;
- private $commentaire;
- private $Id_bil;
- public function __construct($id, $date, $auteur, $mailAuteur, $com, $idBillet){
- $this->Id_com = $id;
- $this->Date_com = $date;
- $this->Auteur_com = $auteur;
- $this->Mail_auteur = $mailAuteur;
- $this->commentaire = $com;
- $this->Id_bil = $idBillet;
- }
- public function getCommentaire(){
- return "      ------- Date com : ".$this->Date_com." / <b>".$this->Auteur_com."</b><br>       ".$this->commentaire."<br><br>";
- }
- public function getIdbil(){
- return $this->Id_bil;
- }
- }
- //Récupération des commentaire et/ou trie
- if(isset($_GET['auteurSQL'])){
- $req = $bdd->query('SELECT * FROM commentaire ORDER BY auteur');
- while ($donnees = $req->fetch())
- {
- $Commentaire[] = new Commentaire($donnees['id'], $donnees['date'], $donnees['auteur'], $donnees['mail'], $donnees['commentaire'], $donnees['id_bil']);
- }
- }elseif(isset($_GET['dateC'])){
- $req = $bdd->query('SELECT * FROM commentaire ORDER BY date desc');
- while ($donnees = $req->fetch())
- {
- $Commentaire[] = new Commentaire($donnees['id'], $donnees['date'], $donnees['auteur'], $donnees['mail'], $donnees['commentaire'], $donnees['id_bil']);
- }
- }else{
- $req = $bdd->query('SELECT * FROM commentaire ORDER BY date desc');
- while ($donnees = $req->fetch())
- {
- $Commentaire[] = new Commentaire($donnees['id'], $donnees['date'], $donnees['auteur'], $donnees['mail'], $donnees['commentaire'], $donnees['id_bil']);
- }
- }
- //ajout d'un commentaire dans la bdd :
- if(isset($_GET['insertC'])){
- if(empty($_POST['date'])){}else{
- $date = $_POST['date'];
- $auteur = $_POST['auteur'];
- $mail = $_POST['mail'];
- $commentaire = $_POST['commentaire'];
- $id = $_POST['id'];
- $bdd->query ("INSERT INTO `gestion`.`commentaire` (`id`, `date`, `auteur`, `mail`, `commentaire`, `id_bil`)
- VALUES (NULL, '".$date."', '".$auteur."', '".$mail."', '".$commentaire."', '".$id."')");
- header('location: index.php');
- }
- header('location: index.php');
- }
- //Affichage :
- $cpt = 0;
- if(isset($_GET['id'])){
- $cpt3 = 0;
- $id = $_GET['id'];
- foreach($Commentaire as &$values){
- if($Commentaire[$cpt3]->getIdbil() == $id){
- echo $Commentaire[$cpt3]->getCommentaire();
- }
- $cpt3++;
- }
- }else{
- if(empty($Billet[0])){}else{
- foreach ($Billet as &$values) {
- echo $Billet[$cpt]->getBillet()."<br>";
- $cpt2 = 0;
- echo "      Commentaire : <br>";
- foreach($Commentaire as &$values){
- if($Commentaire[$cpt2]->getIdbil() == $Billet[$cpt]->getIdbil()){
- echo $Commentaire[$cpt2]->getCommentaire();
- }
- $cpt2++;
- }
- $cpt++;
- echo "<br><hr>";
- }
- }
- }
- ?>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement