Système de news

Rudelle65

Rudelle65 Le 30 mars 2016 à 17:31 (Édité le 25 janvier 2019 à 17:50)

Salut PrimFx

j'aurais besoin de toi pour créer un système de news j'ai fait plusieurs essais qui n'ont pas fonctionner
ci tu pouvais faire une vidéo dessus ou autre ça serait gentil.
Rudelle65

Rudelle65 Le 30 mars 2016 à 17:44

si possible avoir un lien de téléchargement 
TheFlameflo

TheFlameflo Le 30 mars 2016 à 21:22 (Édité le 30 mars 2016 à 21:22)

https://openclassrooms.com/courses/programmez-en-oriente-objet-en-php/tp-un-systeme-de-news
Essaye de suivre ce tutoriel, mais c'est en POO !
Du coup, si tu n'es pas rendu là, tu peux toujours essayer de trouver un autre tutoriel plus convenable !
Rudelle65

Rudelle65 Le 30 mars 2016 à 21:25

je lais déja fait mes sa na pas marcher !!!
PrimFX

PrimFX Le 30 mars 2016 à 23:55

Bizarre que le tuto que TheFlameflo t'as envoyé ne fonctionne pas...
Un système de news est assez long a expliquer, je te ferai un post plus détaillé demain 😉
En attendant tu peux peut-être t'aider des autres tutos PHP que j'ai fait et qui devraient théoriquement te permettre d'arriver à créer ton système de news 😀
Rudelle65

Rudelle65 Le 31 mars 2016 à 00:19

ok merci 
tu veux dire quoi par la  je te ferai un post plus détaillé demain ?
TheFlameflo

TheFlameflo Le 31 mars 2016 à 01:02

Si tu veux, il y a longtemps j'ai créé un petit script sympa que tu peux modifier à ta guise si tu le veux :
<?php 
        include("inc/config.php");    #Inclus la connexion à la bdd
        $req = $bdd->query('SELECT title, contenu, date_creation FROM news ORDER BY id DESC'); #Requête pour récupérer les news
            while($news = $req->fetch()) #Boucle qui les affiche
            {
            ?>
            <div class="contenu">
                <h3><?php echo nl2br($news['title']); ?></h1> #Affiche le titre
                <p><?php echo nl2br($news['contenu']); ?> </p> #Affiche le contenu
                <p class="date_creation"><?php echo $news['date_creation']?></p> #Affiche la date
                
      </div>
      <?php
        }
        $req->closeCursor(); #Ferme la boucle
        ?>

Ça, c'est la partie qui permet d'afficher les news. Je te conseille d'ajouter dans les requêtes une limite (5 dernières) ou tu suis le tuto de PrimFX sur la pagination  (https://www.youtube.com/watch?v=yqoYvUuePvM).
Je crois qu'il y a rien d'autre à expliquer.
<?php 
include("includes/config.php"); #Inclus la connexion à la BDD
if(isset($_POST['submitnew'])) #Série de test, je te laisse les lire et les comprendre
{
   $titre = htmlspecialchars($_POST['title']);
   $contenu = ($_POST['contenu']);
   if(!empty($_POST['title'] AND !empty($_POST['contenu'])))
   {
      $reqtitre = $bdd->prepare('SELECT * FROM news WHERE titre = ?');
      $reqtitre->execute(array($titre));
      $titreexist = $reqtitre->rowCount();
         if($titreexist == 0) {
            $insertnew = $bdd->prepare('INSERT INTO news(title, contenu, date_creation) VALUES(?, ?, CURDATE())'); 
            #Requête qui insère la new si tous les tests sont passés
            $insertnew->execute(array($titre, $contenu));
            $erreur = "News créée avec succès !";
         }
         else
          {
             $erreur = "Ce titre existe déjà.";
          }
   }
   else
   {
      $erreur = "Tous les champs doivent être remplis.";
   }
}
?>
<div>
   <h2>Création de news</h2>
   <br/> <br />
   <form method="POST" action="">
      <table>
<tr>
   <td align="right">
      <label for="titre">Titre :</label>
   </td>
   <td>
      <input type="text" placeholder="Le titre" id="titre" name="title">
   </td>
</tr>
<tr>
   <td align="right">
      <label for="contenu">Contenu</label>
   </td>
   <td>
      <textarea placeholder="Le contenu" id="contenu" name="contenu" rows="10" cols="50">
        </textarea>
   </td>
</tr>
<tr>
   
   <td>
      <input type="submit" value="Confirmer" name="submitnew">
   </td>
</tr>
      </table>
   </form>
   <?php
         if(isset($erreur))
         {
            echo '<font color="red">'.$erreur."</font>";
         }
         ?>
Ça c'est la partie qui permet de créer une nouvelle news. Veille à ce qu'elle soit protégée par .htaccess, si tu ne sais pas comment faire, il y a plein de tutos qui l'expliquent.
CREATE TABLE IF NOT EXISTS `news` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `title` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
  `contenu` mediumtext COLLATE utf8_unicode_ci NOT NULL,
  `date_creation` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=0 ;
Je te donne la structure de ma table news, en gros, c'est un id en Auto Increment, un titre de 60 caractères, un contenu mediumtext et une date de création.

Malheureusement, je n'ai pas trouvé mon code qui permettait de supprimer et modifier les news. Désolé ! :/
Je n'ai pas inclus d'espace commentaire non plus, alors, je te laisse t'inspirer de mon code pour créer quelque chose d'encore mieux ! 😀
Rudelle65

Rudelle65 Le 31 mars 2016 à 01:15

merci pour tout
PrimFX

PrimFX Le 2 avril 2016 à 00:49

@tancraft65 quand je disais que je te ferai un post plus détaillé je voulais dire une réponse avec plus d'éléments qui pourraient te guider 😉 Mais je vois que @TheFlameflo a très bien répondu et t'as donné pas mal de code qui pourra t'aider !

Bref, si tu as d'autres questions, n'hésite pas ! Et si la réponse de @TheFlameflo a résolu ton problème, n'oublie pas de passer le topic en "Résolu" 😗
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte